Test Suites
3 passed, 9 total
Tests
37 passed, 67 total
Snapshots
0 passed, 0 total
{
"additionalResultsProcessors": [],
"resultDir": "./jest-stare/",
"resultHtml": "index.html",
"resultJson": "jest-results.json"
}
{
"numFailedTestSuites": 6,
"numFailedTests": 30,
"numPassedTestSuites": 3,
"numPassedTests": 37,
"numPendingTestSuites": 0,
"numPendingTests": 0,
"numRuntimeErrorTestSuites": 0,
"numTodoTests": 0,
"numTotalTestSuites": 9,
"numTotalTests": 67,
"openHandles": [],
"snapshot": {
"added": 0,
"didUpdate": false,
"failure": false,
"filesAdded": 0,
"filesRemoved": 0,
"filesRemovedList": [],
"filesUnmatched": 0,
"filesUpdated": 0,
"matched": 0,
"total": 0,
"unchecked": 0,
"uncheckedKeysByFile": [],
"unmatched": 0,
"updated": 0
},
"startTime": 1610827154833,
"success": false,
"testResults": [
{
"leaks": false,
"numFailingTests": 0,
"numPassingTests": 17,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827161859,
"runtime": 6144,
"slow": true,
"start": 1610827155715
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/company/"
],
"duration": 328,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/company/ should fail to create a company for an unauthorized user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to create a company for an unauthorized user"
},
{
"ancestorTitles": [
"POST /api/v1/company/"
],
"duration": 144,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/company/ should fail to create a company missing description",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to create a company missing description"
},
{
"ancestorTitles": [
"POST /api/v1/company/"
],
"duration": 226,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/company/ should create a company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should create a company"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 144,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should fail to update another persons company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to update another persons company"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 184,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should update company name",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should update company name"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 133,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should fail to update duplicate company name",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to update duplicate company name"
},
{
"ancestorTitles": [
"GET api/v1/company"
],
"duration": 137,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company should not fetch companies for a non admin user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should not fetch companies for a non admin user"
},
{
"ancestorTitles": [
"GET api/v1/company"
],
"duration": 140,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company should fetch companies for admin user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fetch companies for admin user"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 131,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should fail to update another persons company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to update another persons company"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 168,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should update company name",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should update company name"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:id"
],
"duration": 142,
"failureDetails": [],
"failureMessages": [],
"fullName": "PATCH /api/v1/company/:id should fail to update duplicate company name",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to update duplicate company name"
},
{
"ancestorTitles": [
"GET api/v1/company/:id"
],
"duration": 21,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company/:id owner should not fetch another company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "owner should not fetch another company"
},
{
"ancestorTitles": [
"GET api/v1/company/:id"
],
"duration": 21,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company/:id should fetch owner company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fetch owner company"
},
{
"ancestorTitles": [
"GET api/v1/company/:id"
],
"duration": 26,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company/:id should return company to admin",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should return company to admin"
},
{
"ancestorTitles": [
"GET api/v1/company/mine"
],
"duration": 22,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company/mine should fetch my companies",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fetch my companies"
},
{
"ancestorTitles": [
"DELETE api/v1/company/:id"
],
"duration": 24,
"failureDetails": [],
"failureMessages": [],
"fullName": "DELETE api/v1/company/:id owner should not delete anothers company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "owner should not delete anothers company"
},
{
"ancestorTitles": [
"DELETE api/v1/company/:id"
],
"duration": 47,
"failureDetails": [],
"failureMessages": [],
"fullName": "DELETE api/v1/company/:id should delete company",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should delete company"
}
],
"failureMessage": null,
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 6
},
{
"startOffset": 391,
"endOffset": 407,
"count": 0
},
{
"startOffset": 572,
"endOffset": 578,
"count": 1
},
{
"startOffset": 629,
"endOffset": 635,
"count": 0
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 19
},
{
"startOffset": 431,
"endOffset": 544,
"count": 1
},
{
"startOffset": 544,
"endOffset": 589,
"count": 18
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 44
},
{
"startOffset": 646,
"endOffset": 745,
"count": 11
},
{
"startOffset": 747,
"endOffset": 832,
"count": 0
},
{
"startOffset": 832,
"endOffset": 942,
"count": 11
},
{
"startOffset": 942,
"endOffset": 943,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 22
},
{
"startOffset": 3178,
"endOffset": 3196,
"count": 11
},
{
"startOffset": 3196,
"endOffset": 3197,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 27
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 81
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
},
{
"startOffset": 246,
"endOffset": 262,
"count": 0
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 11
},
{
"startOffset": 310,
"endOffset": 331,
"count": 0
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
},
{
"startOffset": 336,
"endOffset": 362,
"count": 4
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 33
},
{
"startOffset": 451,
"endOffset": 501,
"count": 16
},
{
"startOffset": 503,
"endOffset": 571,
"count": 16
},
{
"startOffset": 571,
"endOffset": 680,
"count": 1
},
{
"startOffset": 680,
"endOffset": 953,
"count": 16
},
{
"startOffset": 955,
"endOffset": 1105,
"count": 1
},
{
"startOffset": 1105,
"endOffset": 1206,
"count": 15
},
{
"startOffset": 1206,
"endOffset": 1246,
"count": 0
},
{
"startOffset": 1246,
"endOffset": 1249,
"count": 15
}
],
"isBlockCoverage": true
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 20
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 81
}
],
"isBlockCoverage": true
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1294,
"endOffset": 1322,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1423,
"endOffset": 1489,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1599,
"endOffset": 1665,
"count": 1
},
{
"startOffset": 1644,
"endOffset": 1665,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 3
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1842,
"endOffset": 2042,
"count": 3
},
{
"startOffset": 1896,
"endOffset": 1927,
"count": 1
},
{
"startOffset": 1929,
"endOffset": 2014,
"count": 1
},
{
"startOffset": 2014,
"endOffset": 2041,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 6
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2237,
"endOffset": 2265,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2469,
"endOffset": 2537,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 6
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 3
},
{
"startOffset": 468,
"endOffset": 470,
"count": 1
},
{
"startOffset": 470,
"endOffset": 538,
"count": 0
},
{
"startOffset": 538,
"endOffset": 613,
"count": 1
},
{
"startOffset": 613,
"endOffset": 614,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 17
},
{
"startOffset": 726,
"endOffset": 744,
"count": 6
},
{
"startOffset": 744,
"endOffset": 776,
"count": 2
},
{
"startOffset": 776,
"endOffset": 860,
"count": 4
},
{
"startOffset": 861,
"endOffset": 911,
"count": 3
},
{
"startOffset": 913,
"endOffset": 1094,
"count": 2
},
{
"startOffset": 1094,
"endOffset": 1095,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 2
},
{
"startOffset": 1175,
"endOffset": 1195,
"count": 1
},
{
"startOffset": 1195,
"endOffset": 1196,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 2
},
{
"startOffset": 1317,
"endOffset": 1337,
"count": 1
},
{
"startOffset": 1337,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 6
},
{
"startOffset": 1426,
"endOffset": 1444,
"count": 3
},
{
"startOffset": 1444,
"endOffset": 1445,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 5
},
{
"startOffset": 1538,
"endOffset": 1559,
"count": 2
},
{
"startOffset": 1559,
"endOffset": 1667,
"count": 1
},
{
"startOffset": 1667,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 30
},
{
"startOffset": 1913,
"endOffset": 1931,
"count": 15
},
{
"startOffset": 1931,
"endOffset": 1932,
"count": 0
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 5
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 1
},
{
"startOffset": 202,
"endOffset": 260,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 225,
"endOffset": 257,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 1,
"numPassingTests": 10,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827164234,
"runtime": 2199,
"slow": false,
"start": 1610827162035
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/accounts/register-owner"
],
"duration": 30,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/register-owner should fail to create a user with missing fields",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to create a user with missing fields"
},
{
"ancestorTitles": [
"POST /api/v1/accounts/register-owner"
],
"duration": 58,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/register-owner should fail to signup user with existing email",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to signup user with existing email"
},
{
"ancestorTitles": [
"POST /api/v1/accounts/register-owner"
],
"duration": 151,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/register-owner should signup a user ",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should signup a user "
},
{
"ancestorTitles": [
"POST /api/v1/accounts/login"
],
"duration": 121,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/login Should login user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should login user"
},
{
"ancestorTitles": [
"POST /api/v1/accounts/login"
],
"duration": 23,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/login Should not login user with wrong password",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should not login user with wrong password"
},
{
"ancestorTitles": [
"POST /api/v1/accounts/login"
],
"duration": 21,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/accounts/login Should fail to login for a non existenst user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should fail to login for a non existenst user"
},
{
"ancestorTitles": [
"POST fetch accounts"
],
"duration": 144,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST fetch accounts Should return an array of users",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should return an array of users"
},
{
"ancestorTitles": [
"PUT/GET /api/v1/accounts/:id fetch account by id"
],
"duration": 150,
"failureDetails": [],
"failureMessages": [],
"fullName": "PUT/GET /api/v1/accounts/:id fetch account by id Should return the account of the user",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should return the account of the user"
},
{
"ancestorTitles": [
"PUT/GET /api/v1/accounts/:id fetch account by id"
],
"duration": 148,
"failureDetails": [],
"failureMessages": [],
"fullName": "PUT/GET /api/v1/accounts/:id fetch account by id Should not update the account of the admin",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should not update the account of the admin"
},
{
"ancestorTitles": [
"PUT/GET /api/v1/accounts/:id fetch account by id"
],
"duration": 158,
"failureDetails": [],
"failureMessages": [],
"fullName": "PUT/GET /api/v1/accounts/:id fetch account by id Should update the account of the owner",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should update the account of the owner"
},
{
"ancestorTitles": [
"POST /api/v1/accounts/ create staff "
],
"duration": 311,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 500 \"Internal Server Error\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/accounts/ create staff owner should create a new user",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "owner should create a new user"
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/accounts/ create staff › owner should create a new user\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 500 \"Internal Server Error\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 6
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 6
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1282,
"endOffset": 1470,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2049,
"endOffset": 2079,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 1
},
{
"startOffset": 2276,
"endOffset": 2352,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2396,
"endOffset": 2456,
"count": 1
},
{
"startOffset": 2435,
"endOffset": 2456,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2544,
"endOffset": 2572,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 2
},
{
"startOffset": 2771,
"endOffset": 2847,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2900,
"endOffset": 2928,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 4
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 3
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 28
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 6
},
{
"startOffset": 1055,
"endOffset": 1057,
"count": 2
},
{
"startOffset": 1057,
"endOffset": 1500,
"count": 1
},
{
"startOffset": 1500,
"endOffset": 1501,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 3
},
{
"startOffset": 1880,
"endOffset": 1882,
"count": 1
},
{
"startOffset": 1882,
"endOffset": 1951,
"count": 0
},
{
"startOffset": 1951,
"endOffset": 1996,
"count": 1
},
{
"startOffset": 1996,
"endOffset": 2061,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 6
},
{
"startOffset": 2149,
"endOffset": 2203,
"count": 2
},
{
"startOffset": 2203,
"endOffset": 2236,
"count": 1
},
{
"startOffset": 2237,
"endOffset": 2289,
"count": 1
},
{
"startOffset": 2291,
"endOffset": 2445,
"count": 1
},
{
"startOffset": 2445,
"endOffset": 2501,
"count": 0
},
{
"startOffset": 2501,
"endOffset": 2619,
"count": 1
},
{
"startOffset": 2619,
"endOffset": 2620,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 2
},
{
"startOffset": 2746,
"endOffset": 2791,
"count": 1
},
{
"startOffset": 2791,
"endOffset": 2792,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2769,
"endOffset": 2789,
"count": 4
}
],
"isBlockCoverage": true
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 2
},
{
"startOffset": 2873,
"endOffset": 2905,
"count": 1
},
{
"startOffset": 2905,
"endOffset": 2906,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 30
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 6
},
{
"startOffset": 3431,
"endOffset": 3757,
"count": 2
},
{
"startOffset": 3757,
"endOffset": 3789,
"count": 1
},
{
"startOffset": 3789,
"endOffset": 3790,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 4
},
{
"startOffset": 3866,
"endOffset": 3867,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 13
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 25
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 80
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 7
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 10
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFFQSxNQUFNUSxPQUFPLEdBQUdSLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qjs7QUFDQSxNQUFNUyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFDQSxNQUFNVSxLQUFLLEdBQUdWLE9BQU8sQ0FBQyxzQkFBRCxDQUFyQjs7QUFFQSxNQUFNVyxNQUFNLEdBQUdaLE9BQU8sQ0FBQ2EsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWYsQyxDQUlBOztBQUNBRixNQUFNLENBQUNHLEdBQVAsQ0FBVyx1QkFBWCxFQUFvQ04sT0FBcEM7QUFDQUcsTUFBTSxDQUFDRyxHQUFQLENBQVcsbUJBQVgsRUFBZ0NMLElBQWhDO0FBQ0FFLE1BQU0sQ0FBQ0csR0FBUCxDQUFXLG9CQUFYLEVBQWlDSixLQUFqQztBQUVBQyxNQUFNLENBQUNJLElBQVAsQ0FBWSxHQUFaLEVBQWlCVixJQUFJLENBQUMsQ0FBQ0MsSUFBSSxDQUFDVSxLQUFOLENBQUQsQ0FBckIsRUFBcUNmLFlBQXJDLEVBQW1EZ0IsTUFBbkQ7QUFDQU4sTUFBTSxDQUFDTyxLQUFQLENBQWEsTUFBYixFQUFxQmIsSUFBSSxDQUFDLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFELENBQXpCLEVBQXlDZCxZQUF6QyxFQUF1RGlCLE1BQXZEO0FBQ0FSLE1BQU0sQ0FBQ1MsR0FBUCxDQUFXLEdBQVgsRUFBZ0JmLElBQUksQ0FBQyxDQUFDQyxJQUFJLENBQUNlLEtBQU4sQ0FBRCxDQUFwQixFQUFvQ0MsZUFBcEM7QUFDQVgsTUFBTSxDQUFDUyxHQUFQLENBQVcsT0FBWCxFQUFvQmYsSUFBSSxDQUFDLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFELENBQXhCLEVBQXdDTyxjQUF4QztBQUNBWixNQUFNLENBQUNTLEdBQVAsQ0FBVyxNQUFYLEVBQW1CZixJQUFJLENBQUMsQ0FBQ0MsSUFBSSxDQUFDZSxLQUFOLEVBQWFmLElBQUksQ0FBQ1UsS0FBbEIsQ0FBRCxDQUF2QixFQUFtRFEsY0FBbkQ7QUFDQWIsTUFBTSxDQUFDYyxNQUFQLENBQWMsTUFBZCxFQUFzQnBCLElBQUksQ0FBQyxDQUFDQyxJQUFJLENBQUNlLEtBQU4sRUFBYWYsSUFBSSxDQUFDVSxLQUFsQixDQUFELENBQTFCLEVBQXNEVSxjQUF0RDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJqQixNQUFqQjs7QUFFQSxTQUFTTSxNQUFULENBQWdCWSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDO0FBQzVCRixFQUFBQSxHQUFHLENBQUNHLElBQUosQ0FBU0MsUUFBVCxHQUFvQkosR0FBRyxDQUFDSyxJQUFKLENBQVNDLEVBQTdCO0FBQ0FoQyxFQUFBQSxjQUFjLENBQ1RjLE1BREwsQ0FDWVksR0FBRyxDQUFDRyxJQURoQixFQUVLSSxJQUZMLENBRVdDLE9BQUQsSUFBYVAsR0FBRyxDQUFDUSxJQUFKLENBQVNELE9BQVQsQ0FGdkIsRUFHS0UsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsZUFBVCxDQUF5Qk8sR0FBekIsRUFBOEJDLEdBQTlCLEVBQW1DQyxJQUFuQyxFQUF5QztBQUNyQzVCLEVBQUFBLGNBQWMsQ0FDVG1CLGVBREwsR0FFS2MsSUFGTCxDQUVXSSxTQUFELElBQWU7QUFDakJWLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTL0IsV0FBVyxDQUFDc0IsR0FBRyxDQUFDSyxJQUFMLEVBQVdNLFNBQVgsQ0FBcEI7QUFDSCxHQUpMLEVBS0tELEtBTEwsQ0FLV1IsSUFMWDtBQU1IOztBQUNELFNBQVNSLGNBQVQsQ0FBd0JNLEdBQXhCLEVBQTZCQyxHQUE3QixFQUFrQ0MsSUFBbEMsRUFBd0M7QUFDcEM1QixFQUFBQSxjQUFjLENBQ1RvQixjQURMLENBQ29CTSxHQUFHLENBQUNLLElBQUosQ0FBU0MsRUFEN0IsRUFFS0MsSUFGTCxDQUVXSSxTQUFELElBQ0ZBLFNBQVMsR0FBR1YsR0FBRyxDQUFDUSxJQUFKLENBQVNFLFNBQVQsQ0FBSCxHQUF5QlYsR0FBRyxDQUFDVyxVQUFKLENBQWUsR0FBZixDQUgxQyxFQUtLRixLQUxMLENBS1dSLElBTFg7QUFNSDs7QUFDRCxTQUFTUCxjQUFULENBQXdCSyxHQUF4QixFQUE2QkMsR0FBN0IsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3BDO0FBQ0E1QixFQUFBQSxjQUFjLENBQ1RxQixjQURMLENBQ29CSyxHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFEL0IsRUFFS0MsSUFGTCxDQUVXQyxPQUFELElBQWE7QUFDZixRQUNJQSxPQUFPLENBQUNKLFFBQVIsS0FBcUJKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxFQUE5QixJQUNBTixHQUFHLENBQUNLLElBQUosQ0FBU1MsSUFBVCxLQUFrQnJDLElBQUksQ0FBQ2UsS0FGM0IsRUFHRTtBQUNFLGFBQU9TLEdBQUcsQ0FBQ2MsTUFBSixDQUFXLEdBQVgsRUFBZ0JOLElBQWhCLENBQXFCO0FBQUVPLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BQXJCLENBQVA7QUFDSDs7QUFFRGYsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNELE9BQVQ7QUFDSCxHQVhMLEVBWUtFLEtBWkwsQ0FZV1IsSUFaWDtBQWFIOztBQUVELFNBQVNaLE1BQVQsQ0FBZ0JVLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUI7QUFDQTVCLEVBQUFBLGNBQWMsQ0FDVDJDLGFBREwsQ0FDbUI7QUFBRVgsSUFBQUEsRUFBRSxFQUFFTixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBakI7QUFBcUJGLElBQUFBLFFBQVEsRUFBRUosR0FBRyxDQUFDSyxJQUFKLENBQVNDO0FBQXhDLEdBRG5CLEVBQ2lFTixHQUFHLENBQUNHLElBRHJFLEVBRUtJLElBRkwsQ0FFV0MsT0FBRCxJQUFhUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsT0FBVCxDQUZ2QixFQUdLRSxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxjQUFULENBQXdCRyxHQUF4QixFQUE2QkMsR0FBN0IsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3BDO0FBQ0E1QixFQUFBQSxjQUFjLENBQ1Q0QyxPQURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 9,
"numPassingTests": 1,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827166438,
"runtime": 2128,
"slow": false,
"start": 1610827164310
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item"
],
"duration": 222,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item should fail to create a category item for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to create a category item for another company"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item"
],
"duration": 136,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 201 \"Created\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 201 \"Created\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 201 \"Created\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item should create a category item for your company menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should create a category item for your company menu"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item"
],
"duration": 132,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item should fail to create a category item for your company menu with missing field",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to create a category item for your company menu with missing field"
},
{
"ancestorTitles": [
"GET/api/v1/company/:company_id/menu/:menu_id/category/:category_id/item"
],
"duration": 27,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET/api/v1/company/:company_id/menu/:menu_id/category/:category_id/item should return 404 for a non existent item",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should return 404 for a non existent item"
},
{
"ancestorTitles": [
"GET/api/v1/company/:company_id/menu/:menu_id/category/:category_id/item"
],
"duration": 19,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET/api/v1/company/:company_id/menu/:menu_id/category/:category_id/item should return 200 for an existing item",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should return 200 for an existing item"
},
{
"ancestorTitles": [
"Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id"
],
"duration": 132,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id should fail to update a category item for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to update a category item for another company"
},
{
"ancestorTitles": [
"Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id"
],
"duration": 137,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id should update a category item for your company menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should update a category item for your company menu"
},
{
"ancestorTitles": [
"Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id"
],
"duration": 134,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 404 \"Not Found\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 404 \"Not Found\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 404 \"Not Found\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "Patch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id should not updated 404 for a non existent item menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should not updated 404 for a non existent item menu"
},
{
"ancestorTitles": [
"DELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id"
],
"duration": 128,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id should fail to delete a category item for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to delete a category item for another company"
},
{
"ancestorTitles": [
"DELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id"
],
"duration": 141,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id should delete a category item for your company menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should delete a category item for your company menu"
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item › should fail to create a category item for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item › should create a category item for your company menu\u001b[39m\u001b[22m\n\n expected 201 \"Created\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item › should fail to create a category item for your company menu with missing field\u001b[39m\u001b[22m\n\n expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET/api/v1/company/:company_id/menu/:menu_id/category/:category_id/item › should return 200 for an existing item\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPatch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id › should fail to update a category item for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPatch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id › should update a category item for your company menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPatch /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id › should not updated 404 for a non existent item menu\u001b[39m\u001b[22m\n\n expected 404 \"Not Found\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id › should fail to delete a category item for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE /api/v1/company/:company_id/menu/:menu_id/category/:category_id/item/:id › should delete a category item for your company menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 10
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 32
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 16
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 16
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 48
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 8
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 16
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 16
},
{
"startOffset": 1454,
"endOffset": 1473,
"count": 8
},
{
"startOffset": 1473,
"endOffset": 1593,
"count": 5
},
{
"startOffset": 1593,
"endOffset": 1615,
"count": 3
},
{
"startOffset": 1615,
"endOffset": 1655,
"count": 0
},
{
"startOffset": 1655,
"endOffset": 1658,
"count": 3
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 3
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 24
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 842,
"endOffset": 876,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1002,
"endOffset": 1053,
"count": 2
},
{
"startOffset": 1015,
"endOffset": 1031,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1191,
"endOffset": 1242,
"count": 1
},
{
"startOffset": 1204,
"endOffset": 1220,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1380,
"endOffset": 1450,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 2
},
{
"startOffset": 346,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 4
},
{
"startOffset": 441,
"endOffset": 478,
"count": 2
},
{
"startOffset": 478,
"endOffset": 495,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 2
},
{
"startOffset": 608,
"endOffset": 629,
"count": 1
},
{
"startOffset": 629,
"endOffset": 630,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 2
},
{
"startOffset": 732,
"endOffset": 733,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 4
},
{
"startOffset": 895,
"endOffset": 910,
"count": 2
},
{
"startOffset": 910,
"endOffset": 911,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 17
}
],
"isBlockCoverage": true
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7O0FBRUEsTUFBTVMsU0FBUyxHQUFHVCxPQUFPLENBQUMsOEJBQUQsQ0FBekI7O0FBRUEsTUFBTVUsTUFBTSxHQUFHWCxPQUFPLENBQUNZLE1BQVIsQ0FBZTtBQUMxQkMsRUFBQUEsV0FBVyxFQUFFO0FBRGEsQ0FBZixDQUFmO0FBSUFGLE1BQU0sQ0FBQ0csR0FBUCxDQUFXLHNCQUFYLEVBQW1DSixTQUFuQyxFLENBRUE7O0FBQ0FDLE1BQU0sQ0FBQ0ksSUFBUCxDQUFZLEdBQVosRUFBaUJiLGlCQUFqQixFQUFvQ2MsV0FBcEM7QUFDQUwsTUFBTSxDQUFDTSxLQUFQLENBQ0ksTUFESixFQUVJZCxpQkFGSixFQUdJRyxJQUFJLENBQUMsQ0FBQ0UsSUFBSSxDQUFDVSxLQUFOLEVBQWFWLElBQUksQ0FBQ1csS0FBbEIsQ0FBRCxDQUhSLEVBSUlDLFdBSko7QUFNQVQsTUFBTSxDQUFDVSxHQUFQLENBQVcsTUFBWCxFQUFtQmYsSUFBSSxFQUF2QixFQUEyQmdCLFlBQTNCO0FBQ0FYLE1BQU0sQ0FBQ1UsR0FBUCxDQUFXLGdCQUFYLEVBQTZCZixJQUFJLENBQUNFLElBQUksQ0FBQ2UsUUFBTixDQUFqQyxFQUFrREMsWUFBbEQ7QUFDQWIsTUFBTSxDQUFDVSxHQUFQLENBQ0ksaUJBREosRUFFSWpCLGtCQUZKLEVBR0lFLElBQUksQ0FBQyxDQUFDRSxJQUFJLENBQUNXLEtBQU4sRUFBYVgsSUFBSSxDQUFDVSxLQUFsQixDQUFELENBSFIsRUFJSVgsT0FBTyxFQUpYLEVBS0lrQixnQkFMSjs7QUFRQSxTQUFTVCxXQUFULENBQXFCVSxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDLFFBQU1DLE9BQU8sR0FBRztBQUNaQyxJQUFBQSxPQUFPLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTRCxPQUROO0FBRVpFLElBQUFBLFVBQVUsRUFBRUMsUUFBUSxDQUFDUCxHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBWixDQUZSO0FBR1pHLElBQUFBLFVBQVUsRUFBRUYsUUFBUSxDQUFDUCxHQUFHLENBQUNLLElBQUosQ0FBU0ksVUFBVixDQUhSO0FBSVpDLElBQUFBLFFBQVEsRUFBRUgsUUFBUSxDQUFDUCxHQUFHLENBQUNLLElBQUosQ0FBU0ssUUFBVjtBQUpOLEdBQWhCO0FBT0EzQixFQUFBQSxZQUFZLENBQ1BPLFdBREwsQ0FDaUJhLE9BRGpCLEVBRUtRLElBRkwsQ0FFV0MsU0FBRCxJQUNGWCxHQUFHLENBQUNZLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUcsR0FBRUYsU0FBUyxDQUFDRyxJQUFLO0FBRHRCLEdBQVQsQ0FIUixFQU9LQyxLQVBMLENBT1dkLElBUFg7QUFRSDs7QUFFRCxTQUFTUixXQUFULENBQXFCTSxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDbkIsRUFBQUEsWUFBWSxDQUNQVyxXQURMLENBQ2lCTSxHQUFHLENBQUNRLE1BQUosQ0FBV1MsRUFENUIsRUFDZ0NqQixHQUFHLENBQUNrQixJQURwQyxFQUMwQ2xCLEdBQUcsQ0FBQ0ssSUFEOUMsRUFFS00sSUFGTCxDQUVXUSxLQUFELElBQVdsQixHQUFHLENBQUNZLElBQUosQ0FBU00sS0FBVCxDQUZyQixFQUdLSCxLQUhMLENBR1dkLElBSFg7QUFJSDs7QUFFRCxTQUFTTixZQUFULENBQXNCSSxHQUF0QixFQUEyQkMsR0FBM0IsRUFBZ0NDLElBQWhDLEVBQXNDO0FBQ2xDbkIsRUFBQUEsWUFBWSxDQUNQYSxZQURMLENBQ2tCcUIsRUFEbEIsRUFFS04sSUFGTCxDQUVXUSxLQUFELElBQVlBLEtBQUssR0FBR2xCLEdBQUcsQ0FBQ1ksSUFBSixDQUFTTSxLQUFULENBQUgsR0FBcUJsQixHQUFHLENBQUNtQixVQUFKLENBQWUsR0FBZixDQUZoRCxFQUdLSixLQUhMLENBR1dkLElBSFg7QUFJSDs7QUFFRCxTQUFTSixZQUFULENBQXNCRSxHQUF0QixFQUEyQkMsR0FBM0IsRUFBZ0NDLElBQWhDLEVBQXNDO0FBQ2xDbkIsRUFBQUEsWUFBWSxDQUNQZSxZQURMLENBQ2tCRSxHQUFHLENBQUNrQixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 9,
"numPassingTests": 2,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827168694,
"runtime": 2144,
"slow": false,
"start": 1610827166550
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/"
],
"duration": 244,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/ should fail to creat a category for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to creat a category for another company"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/"
],
"duration": 142,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/ should create a category for your company menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should create a category for your company menu"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu/:menu_id/category/"
],
"duration": 129,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu/:menu_id/category/ should fail to create a category with missing field",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to create a category with missing field"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/menu/:menu_id/category/"
],
"duration": 27,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET /api/v1/company/:company_id/menu/:menu_id/category/ should return 404 for a non existent company categories",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should return 404 for a non existent company categories"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/menu/:menu_id/category/"
],
"duration": 16,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET /api/v1/company/:company_id/menu/:menu_id/category/ should return 200 exsting company categories",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should return 200 exsting company categories"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 23,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET /api/v1/company/:company_id/menu/:menu_id/category/:id should return 404 for a non existent categories",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should return 404 for a non existent categories"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 19,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET /api/v1/company/:company_id/menu/:menu_id/category/:id should return 200 for existing company category",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should return 200 for existing company category"
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 145,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "PATCH /api/v1/company/:company_id/menu/:menu_id/category/:id should not update another company category ",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should not update another company category "
},
{
"ancestorTitles": [
"PATCH /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 133,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "PATCH /api/v1/company/:company_id/menu/:menu_id/category/:id should update category ",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should update category "
},
{
"ancestorTitles": [
"DELETE /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 142,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE /api/v1/company/:company_id/menu/:menu_id/category/:id should delete another company category",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should delete another company category"
},
{
"ancestorTitles": [
"DELETE /api/v1/company/:company_id/menu/:menu_id/category/:id"
],
"duration": 147,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE /api/v1/company/:company_id/menu/:menu_id/category/:id should delete a category ",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should delete a category "
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/ › should fail to creat a category for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 500 \"Internal Server Error\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/ › should create a category for your company menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu/:menu_id/category/ › should fail to create a category with missing field\u001b[39m\u001b[22m\n\n expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET /api/v1/company/:company_id/menu/:menu_id/category/ › should return 200 exsting company categories\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET /api/v1/company/:company_id/menu/:menu_id/category/:id › should return 200 for existing company category\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPATCH /api/v1/company/:company_id/menu/:menu_id/category/:id › should not update another company category \u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPATCH /api/v1/company/:company_id/menu/:menu_id/category/:id › should update category \u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE /api/v1/company/:company_id/menu/:menu_id/category/:id › should delete another company category\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE /api/v1/company/:company_id/menu/:menu_id/category/:id › should delete a category \u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 9
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 28
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 42
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 7
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 14
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 3
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 21
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1104,
"endOffset": 1134,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1315,
"endOffset": 1384,
"count": 2
},
{
"startOffset": 1340,
"endOffset": 1362,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1526,
"endOffset": 1589,
"count": 2
},
{
"startOffset": 1547,
"endOffset": 1567,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1858,
"endOffset": 1921,
"count": 1
},
{
"startOffset": 1879,
"endOffset": 1899,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2180,
"endOffset": 2235,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 3
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 2
},
{
"startOffset": 416,
"endOffset": 436,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 3
},
{
"startOffset": 534,
"endOffset": 593,
"count": 1
},
{
"startOffset": 593,
"endOffset": 625,
"count": 0
},
{
"startOffset": 626,
"endOffset": 706,
"count": 0
},
{
"startOffset": 708,
"endOffset": 766,
"count": 0
},
{
"startOffset": 766,
"endOffset": 882,
"count": 1
},
{
"startOffset": 882,
"endOffset": 883,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 4
},
{
"startOffset": 1092,
"endOffset": 1144,
"count": 2
},
{
"startOffset": 1144,
"endOffset": 1166,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 4
},
{
"startOffset": 1257,
"endOffset": 1276,
"count": 2
},
{
"startOffset": 1276,
"endOffset": 1277,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 2
},
{
"startOffset": 1370,
"endOffset": 1371,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 6
},
{
"startOffset": 1543,
"endOffset": 1562,
"count": 3
},
{
"startOffset": 1562,
"endOffset": 1563,
"count": 0
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 3
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 41
}
],
"isBlockCoverage": true
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 8,
"numPassingTests": 2,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827170801,
"runtime": 1937,
"slow": false,
"start": 1610827168864
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu"
],
"duration": 156,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu Should fail to create a menu with missing field",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "Should fail to create a menu with missing field"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu"
],
"duration": 128,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu Should create a menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "Should create a menu"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/menu"
],
"duration": 172,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/menu Should fail to create a menu for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "Should fail to create a menu for another company"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/menu"
],
"duration": 20,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET /api/v1/company/:company_id/menu Should return company menu",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "Should return company menu"
},
{
"ancestorTitles": [
"GET api/v1/company/:company_id/menu/:id"
],
"duration": 19,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET api/v1/company/:company_id/menu/:id should fail to find a menu",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to find a menu"
},
{
"ancestorTitles": [
"GET api/v1/company/:company_id/menu/:id"
],
"duration": 25,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 404 \"Not Found\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 404 \"Not Found\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET api/v1/company/:company_id/menu/:id should find a menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should find a menu"
},
{
"ancestorTitles": [
"PATCH api/v1/company/:company_id/menu/:id"
],
"duration": 151,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "PATCH api/v1/company/:company_id/menu/:id should fail to update menu for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to update menu for another company"
},
{
"ancestorTitles": [
"PATCH api/v1/company/:company_id/menu/:id"
],
"duration": 138,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "PATCH api/v1/company/:company_id/menu/:id should update menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should update menu"
},
{
"ancestorTitles": [
"DELETE api/v1/company/:company_id/menu/:id"
],
"duration": 141,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE api/v1/company/:company_id/menu/:id should fail to delete another comapanys menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to delete another comapanys menu"
},
{
"ancestorTitles": [
"DELETE api/v1/company/:company_id/menu/:id"
],
"duration": 123,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "DELETE api/v1/company/:company_id/menu/:id should delete menu",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should delete menu"
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu › Should fail to create a menu with missing field\u001b[39m\u001b[22m\n\n expected 500 \"Internal Server Error\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu › Should create a menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/menu › Should fail to create a menu for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET api/v1/company/:company_id/menu/:id › should find a menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 404 \"Not Found\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPATCH api/v1/company/:company_id/menu/:id › should fail to update menu for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPATCH api/v1/company/:company_id/menu/:id › should update menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE api/v1/company/:company_id/menu/:id › should fail to delete another comapanys menu\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mDELETE api/v1/company/:company_id/menu/:id › should delete menu\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 9
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 28
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 42
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 7
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 7
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 14
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 14
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 3
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 21
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1081,
"endOffset": 1103,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1281,
"endOffset": 1394,
"count": 1
},
{
"startOffset": 1329,
"endOffset": 1349,
"count": 0
},
{
"startOffset": 1368,
"endOffset": 1389,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1524,
"endOffset": 1575,
"count": 2
},
{
"startOffset": 1537,
"endOffset": 1553,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1785,
"endOffset": 1836,
"count": 1
},
{
"startOffset": 1815,
"endOffset": 1836,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 2096,
"endOffset": 2139,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 3
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 2
},
{
"startOffset": 441,
"endOffset": 456,
"count": 1
},
{
"startOffset": 456,
"endOffset": 457,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 2
},
{
"startOffset": 580,
"endOffset": 602,
"count": 1
},
{
"startOffset": 602,
"endOffset": 603,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 2
},
{
"startOffset": 824,
"endOffset": 866,
"count": 1
},
{
"startOffset": 866,
"endOffset": 867,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 844,
"endOffset": 864,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 4
},
{
"startOffset": 946,
"endOffset": 983,
"count": 2
},
{
"startOffset": 983,
"endOffset": 1014,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 2
},
{
"startOffset": 1113,
"endOffset": 1114,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 4
},
{
"startOffset": 1378,
"endOffset": 1393,
"count": 2
},
{
"startOffset": 1393,
"endOffset": 1394,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 4
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 41
}
],
"isBlockCoverage": true
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 2,
"numPassingTests": 0,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827172094,
"runtime": 1122,
"slow": false,
"start": 1610827170972
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.test.js",
"testResults": [
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/accounts"
],
"duration": 178,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"",
"passed": false,
"stack": "Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 401 \"Unauthorized\", got 200 \"OK\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET /api/v1/company/:company_id/accounts should fail to fetch company accounts for another company",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fail to fetch company accounts for another company"
},
{
"ancestorTitles": [
"GET /api/v1/company/:company_id/accounts"
],
"duration": 134,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 401 \"Unauthorized\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "GET /api/v1/company/:company_id/accounts should fetch company accounts",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should fetch company accounts"
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET /api/v1/company/:company_id/accounts › should fail to fetch company accounts for another company\u001b[39m\u001b[22m\n\n expected 401 \"Unauthorized\", got 200 \"OK\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n\n\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mGET /api/v1/company/:company_id/accounts › should fetch company accounts\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 401 \"Unauthorized\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFFQUMsTUFBTSxDQUFDVSxJQUFQLENBQVksUUFBWixFQUFzQlIsWUFBdEIsRUFBb0NTLEtBQXBDO0FBQ0FYLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZLG9CQUFaLEVBQWtDUCxZQUFsQyxFQUFnRFMsZ0JBQWhEO0FBQ0FaLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZLGlCQUFaLEVBQStCUCxZQUEvQixFQUE2Q1UsUUFBN0M7QUFDQWIsTUFBTSxDQUFDVSxJQUFQLENBQVksZUFBWixFQUE2QkwsaUJBQTdCLEVBQWdEUyxXQUFoRDtBQUNBZCxNQUFNLENBQUNlLEdBQVAsQ0FBVyxHQUFYLEVBQWdCUCxJQUFJLENBQUNDLElBQUksQ0FBQ08sS0FBTixDQUFwQixFQUFrQ0MsTUFBbEM7QUFDQWpCLE1BQU0sQ0FBQ2UsR0FBUCxDQUFXLE1BQVgsRUFBbUJQLElBQUksRUFBdkIsRUFBMkJVLE9BQTNCO0FBQ0FsQixNQUFNLENBQUNVLElBQVAsQ0FBWSxlQUFaLEVBQTZCRixJQUFJLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFqQyxFQUErQ2hCLFlBQS9DLEVBQTZEaUIsTUFBN0Q7QUFDQXBCLE1BQU0sQ0FBQ3FCLEdBQVAsQ0FBVyxNQUFYLEVBQW1CYixJQUFJLEVBQXZCLEVBQTJCSixZQUEzQixFQUF5Q2tCLE1BQXpDO0FBQ0F0QixNQUFNLENBQUN1QixNQUFQLENBQWMsTUFBZCxFQUFzQmYsSUFBSSxFQUExQixFQUE4QmdCLE9BQTlCO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjFCLE1BQWpCOztBQUVBLFNBQVNXLEtBQVQsQ0FBZWdCLEdBQWYsRUFBb0JDLEdBQXBCLEVBQXlCQyxJQUF6QixFQUErQjtBQUMzQixRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFzQkosR0FBRyxDQUFDSyxJQUFoQztBQUNBMUIsRUFBQUEsV0FBVyxDQUNOSyxLQURMLENBQ1c7QUFBRW1CLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxHQURYLEVBRUtFLElBRkwsQ0FFVSxDQUFDO0FBQUVDLElBQUFBLElBQUY7QUFBUUMsSUFBQUE7QUFBUixHQUFELEtBQXFCO0FBQ3ZCUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFRixNQUFBQSxJQUFGO0FBQVFDLE1BQUFBO0FBQVIsS0FBVDtBQUNILEdBSkwsRUFLS0UsS0FMTCxDQUtXUixJQUxYO0FBTUg7O0FBRUQsU0FBU2hCLFFBQVQsQ0FBa0JjLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJGLEVBQUFBLEdBQUcsQ0FBQ0ssSUFBSixDQUFTTSxJQUFULEdBQWdCN0IsSUFBSSxDQUFDVSxLQUFyQjtBQUNBYixFQUFBQSxXQUFXLENBQ05PLFFBREwsQ0FDY2MsR0FBRyxDQUFDSyxJQURsQixFQUN3QkwsR0FBRyxDQUFDWixHQUFKLENBQVEsUUFBUixDQUR4QixFQUVLa0IsSUFGTCxDQUVVLENBQUM7QUFBRUMsSUFBQUEsSUFBRjtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsS0FBcUI7QUFDdkIsV0FBT1AsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFDWkYsTUFBQUEsSUFEWTtBQUVaQyxNQUFBQSxLQUZZO0FBR1pJLE1BQUFBLE9BQU8sRUFDSDtBQUpRLEtBQVQsQ0FBUDtBQU1ILEdBVEwsRUFVS0YsS0FWTCxDQVVXUixJQVZYO0FBV0g7O0FBRUQsU0FBU2pCLGdCQUFULENBQTBCZSxHQUExQixFQUErQkMsR0FBL0IsRUFBb0NDLElBQXBDLEVBQTBDO0FBQ3RDRixFQUFBQSxHQUFHLENBQUNLLElBQUosQ0FBU00sSUFBVCxHQUFnQjdCLElBQUksQ0FBQytCLFFBQXJCO0FBQ0FsQyxFQUFBQSxXQUFXLENBQ05PLFFBREwsQ0FDY2MsR0FBRyxDQUFDSyxJQURsQixFQUN3QkwsR0FBRyxDQUFDWixHQUFKLENBQVEsUUFBUixDQUR4QixFQUVLa0IsSUFGTCxDQUVVLENBQUM7QUFBRUMsSUFBQUEsSUFBRjtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsS0FBcUI7QUFDdkIsV0FBT1AsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFDWkYsTUFBQUEsSUFEWTtBQUVaQyxNQUFBQSxLQUZZO0FBR1pJLE1BQUFBLE9BQU8sRUFDSDtBQUpRLEtBQVQsQ0FBUDtBQU1ILEdBVEwsRUFVS0YsS0FWTCxDQVVXUixJQVZYO0FBV0g7O0FBRUQsU0FBU2YsV0FBVCxDQUFxQmEsR0FBckIsRUFBMEJDLEdBQTFCLEVBQStCQyxJQUEvQixFQUFxQztBQUNqQ3ZCLEVBQUFBLFdBQVcsQ0FDTlEsV0FETCxDQUNpQmEsR0FBRyxDQUFDSyxJQURyQixFQUVLQyxJQUZMLENBRVUsTUFBTUwsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUcsSUFBQUEsT0FBTyxFQUFFO0FBQVgsR0FBVCxDQUZoQixFQUdLRixLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTWixNQUFULENBQWdCVSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDO0FBQzVCdkIsRUFBQUEsV0FBVyxDQUNOVyxNQURMLEdBRUtnQixJQUZMLENBRVdRLFFBQUQsSUFBY2IsR0FBRyxDQUFDUSxJQUFKLENBQVNLLFFBQVQsQ0FGeEIsRUFHS0osS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1gsT0FBVCxDQUFpQlMsR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QjtBQUNBLE1BQUlhLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUFaLENBQU4sS0FBMEJqQixHQUFHLENBQUNPLElBQUosQ0FBU1UsRUFBbkMsSUFBeUNqQixHQUFHLENBQUNPLElBQUosQ0FBU0ksSUFBVCxLQUFrQjdCLElBQUksQ0FBQ08sS0FBcEUsRUFBMkU7QUFDdkUsV0FBT1ksR0FBRyxDQUFDaUIsTUFBSixDQUFXLEdBQVgsRUFBZ0JULElBQWhCLENBQXFCO0FBQUVHLE1BQUFBLE9BQU8sRUFBRTtBQUFYLEtBQXJCLENBQVA7QUFDSDs7QUFFRGpDLEVBQUFBLFdBQVcsQ0FDTlksT0FETCxDQUNhUyxHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBRHhCLEVBRUtYLElBRkwsQ0FFV2EsT0FBRCxJQUFjQSxPQUFPLEdBQUdsQixHQUFHLENBQUNRLElBQUosQ0FBU1UsT0FBVCxDQUFILEdBQXVCbEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGdEQsRUFHS1YsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsTUFBVCxDQUFnQk8sR0FBaEIsRUFBcUJDLEdBQXJCLEVBQTBCQyxJQUExQixFQUFnQztBQUM1QnZCLEVBQUFBLFdBQVcsQ0FDTmMsTUFETCxDQUNZTyxHQUFHLENBQUNLLElBRGhCLEVBRUtDLElBRkwsQ0FFV2EsT0FBRCxJQUFhbEIsR0FBRyxDQUFDUSxJQUFKLENBQVNVLE9BQVQsQ0FGdkIsRUFHS1QsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsTUFBVCxDQUFnQkssR0FBaEIsRUFBcUJDLEdBQXJCLEVBQTBCQyxJQUExQixFQUFnQztBQUM1QjtBQUNBLE1BQUlhLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUFaLENBQU4sS0FBMEJqQixHQUFHLENBQUNPLElBQUosQ0FBU1UsRUFBbkMsSUFBeUNqQixHQUFHLENBQUNPLElBQUosQ0FBU0ksSUFBVCxLQUFrQjdCLElBQUksQ0FBQ08sS0FBcEUsRUFBMkU7QUFDdkUsV0FBT1ksR0FBRyxDQUFDaUIsTUFBSixDQUFXLEdBQVgsRUFBZ0JULElBQWhCLENBQXFCO0FBQUVHLE1BQUFBLE9BQU8sRUFBRTtBQUFYLEtBQXJCLENBQVA7QUFDSDs7QUFFRGpDLEVBQUFBLFdBQVcsQ0FDTmdCLE1BREwsQ0FDWUssR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUR2QixFQUMyQmpCLEdBQUcsQ0FBQ0ssSUFEL0IsRUFFS0MsSUFGTCxDQUVXYSxPQUFELElBQWFsQixHQUFHLENBQUNRLElBQUosQ0FBU1UsT0FBVCxDQUZ2QixFQUdLVCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxPQUFULENBQWlCRyxHQUFqQixFQUFzQkMsR0FBdEIsRUFBMkJDLElBQTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1058,
"endOffset": 1141,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 8
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 4
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 4
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 12
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 173,
"endOffset": 372,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 273,
"endOffset": 366,
"count": 2
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 4
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 4
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 6
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 2
},
{
"startOffset": 754,
"endOffset": 775,
"count": 1
},
{
"startOffset": 775,
"endOffset": 812,
"count": 0
},
{
"startOffset": 812,
"endOffset": 842,
"count": 1
},
{
"startOffset": 842,
"endOffset": 878,
"count": 0
},
{
"startOffset": 878,
"endOffset": 879,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 3
}
],
"isBlockCoverage": true
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3QixDQUFvQztBQUNsREMsSUFBQUEsT0FBTyxFQUFFUixNQUFNLENBQUNTLFVBRGtDO0FBRWxEUixJQUFBQSxLQUFLLEVBQUVBLEtBQUssQ0FBQ1MsRUFGcUM7QUFHbERDLElBQUFBLFFBQVEsRUFBRVgsTUFBTSxDQUFDVztBQUhpQyxHQUFwQyxDQUFsQjtBQU1BLFNBQU9OLFNBQVA7QUFDSDs7QUFFRCxlQUFlVixlQUFmLENBQStCZSxFQUEvQixFQUFtQ1YsTUFBbkMsRUFBMkM7QUFDdkMsUUFBTUMsS0FBSyxHQUFHLE1BQU1XLFFBQVEsQ0FBQ0YsRUFBRCxDQUE1QjtBQUVBLE1BQUlMLFNBQUosQ0FIdUMsQ0FJdkM7O0FBQ0EsTUFBSUwsTUFBTSxDQUFDYSxJQUFQLENBQVlGLFFBQVosSUFBd0IsQ0FBNUIsRUFBK0I7QUFDM0I7QUFDQU4sSUFBQUEsU0FBUyxHQUFHLE1BQU1KLEtBQUssQ0FDbEJLLGFBRGEsQ0FDQyxPQURELEVBRWJRLE1BRmEsR0FHYkMsS0FIYSxDQUdQO0FBQUVQLE1BQUFBLE9BQU8sRUFBRVIsTUFBTSxDQUFDYSxJQUFQLENBQVlKO0FBQXZCLEtBSE8sQ0FBbEI7QUFLQSxXQUFPSixTQUFQO0FBQ0g7O0FBRURBLEVBQUFBLFNBQVMsR0FBRyxNQUFNSixLQUFLLENBQ2xCSyxhQURhLENBQ0MsT0FERCxFQUViVSxLQUZhLENBRVA7QUFDSEwsSUFBQUEsUUFBUSxFQUFFWCxNQUFNLENBQUNhLElBQVAsQ0FBWUY7QUFEbkIsR0FGTyxFQUtiSSxLQUxhLENBS1A7QUFDSFAsSUFBQUEsT0FBTyxFQUFFUixNQUFNLENBQUNhLElBQVAsQ0FBWUo7QUFEbEIsR0FMTyxFQVFiUSxTQVJhLENBUUgsR0FSRyxDQUFsQjtBQVVBLFNBQU9aLFNBQVA7QUFDSDs7QUFFRCxlQUFlVCxXQUFmLENBQTJCYyxFQUEzQixFQUErQlEsSUFBL0IsRUFBcUNsQixNQUFyQyxFQUE2QztBQUN6QyxNQUFJQyxLQUFLLEdBQUcsTUFBTVcsUUFBUSxDQUFDRixFQUFELENBQVIsQ0FBYVMsZ0JBQWIsQ0FBOEIsU0FBOUIsQ0FBbEI7O0FBRUEsTUFBSWxCLEtBQUssQ0FBQ21CLE9BQU4sQ0FBY1YsRUFBZCxLQUFxQlEsSUFBSSxDQUFDRSxPQUFMLENBQWFWLEVBQXRDLEVBQTBDO0FBQ3RDLFVBQU1XLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVUsYUFBVixDQUFkO0FBQ0EsVUFBTUQsS0FBTjtBQUNILEdBTndDLENBT3pDOzs7QUFDQXBCLEVBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNDLGlCQUFkLENBQWdDZCxFQUFoQyxFQUFvQ1YsTUFBcEMsQ0FBZDtBQUVBLFNBQU9DLEtBQVA7QUFDSDs7QUFFRCxlQUFlSixZQUFmLENBQTRCYSxFQUE1QixFQUFnQztBQUM1QixRQUFNVCxLQUFLLEdBQUcsTUFBTVcsUUFBUSxDQUFDRixFQUFELENBQVIsQ0FBYVMsZ0JBQWIsQ0FBOEIsT0FBOUIsQ0FBcEI7QUFDQSxTQUFPbEIsS0FBUDtBQUNIOztBQUVELGVBQWVILFlBQWYsQ0FBNEJZLEVBQTVCLEVBQWdDO0FBQzVCLFFBQU1lLE1BQU0sR0FBRyxNQUFNbkMsS0FBSyxDQUFDaUMsS0FBTixHQUNoQlIsS0FEZ0IsQ0FDVjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FEVSxFQUVoQmdCLE9BRmdCLENBRVIsWUFGUSxDQUFyQjtBQUdBLFNBQU9ELE1BQVA7QUFDSDs7QUFFRCxlQUFlMUIsZ0JBQWYsQ0FBZ0NDLE1BQWhDLEVBQXdDO0FBQ3BDLFFBQU15QixNQUFNLEdBQUcsTUFBTW5DLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQmYsTUFBcEIsRUFBNEIwQixPQUE1QixDQUFvQyxZQUFwQyxDQUFyQjtBQUNBLFNBQU9ELE1BQVA7QUFDSCxDLENBQ0Q7OztBQUNBLGVBQWV2QixhQUFmLENBQTZCUSxFQUE3QixFQUFpQ04sVUFBakMsRUFBNkM7QUFDekM7QUFDQTtBQUNBO0FBRUEsTUFBSUgsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FDYlIsS0FEYSxDQUNQO0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 1,
"numPassingTests": 1,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827173278,
"runtime": 1010,
"slow": false,
"start": 1610827172268
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.test.js",
"testResults": [
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/order"
],
"duration": 28,
"failureDetails": [],
"failureMessages": [],
"fullName": "POST /api/v1/company/:company_id/order should fail to creat an order if cart_id is missing",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "should fail to creat an order if cart_id is missing"
},
{
"ancestorTitles": [
"POST /api/v1/company/:company_id/order"
],
"duration": 143,
"failureDetails": [
{
"actual": "",
"error": {},
"expected": "",
"matcherName": "",
"message": "Error: expected 200 \"OK\", got 500 \"Internal Server Error\"",
"passed": false,
"stack": "Error: expected 200 \"OK\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
}
],
"failureMessages": [
"Error: expected 200 \"OK\", got 500 \"Internal Server Error\"\n at Test.Object.<anonymous>.Test._assertStatus (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:270:12)\n at Test.Object.<anonymous>.Test._assertFunction (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:285:11)\n at Test.Object.<anonymous>.Test.assert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:175:21)\n at Server.localAssert (/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/supertest/lib/test.js:133:12)\n at Object.onceWrapper (events.js:291:20)\n at Server.emit (events.js:203:13)\n at emitCloseNT (net.js:1572:8)\n at processTicksAndRejections (internal/process/task_queues.js:77:11)"
],
"fullName": "POST /api/v1/company/:company_id/order should create a cart and add item to it",
"location": null,
"numPassingAsserts": 0,
"status": "failed",
"title": "should create a cart and add item to it"
}
],
"failureMessage": "\u001b[1m\u001b[31m \u001b[1m● \u001b[22m\u001b[1mPOST /api/v1/company/:company_id/order › should create a cart and add item to it\u001b[39m\u001b[22m\n\n expected 200 \"OK\", got 500 \"Internal Server Error\"\n\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertStatus (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:270:12)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test._assertFunction (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:285:11)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Test.Object.<anonymous>.Test.assert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:175:21)\u001b[22m\u001b[2m\u001b[22m\n\u001b[2m \u001b[2mat Server.localAssert (\u001b[22m\u001b[2m\u001b[0m\u001b[36mnode_modules/supertest/lib/test.js\u001b[39m\u001b[0m\u001b[2m:133:12)\u001b[22m\u001b[2m\u001b[22m\n",
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 2
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFFQUMsTUFBTSxDQUFDVSxJQUFQLENBQVksUUFBWixFQUFzQlIsWUFBdEIsRUFBb0NTLEtBQXBDO0FBQ0FYLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZLG9CQUFaLEVBQWtDUCxZQUFsQyxFQUFnRFMsZ0JBQWhEO0FBQ0FaLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZLGlCQUFaLEVBQStCUCxZQUEvQixFQUE2Q1UsUUFBN0M7QUFDQWIsTUFBTSxDQUFDVSxJQUFQLENBQVksZUFBWixFQUE2QkwsaUJBQTdCLEVBQWdEUyxXQUFoRDtBQUNBZCxNQUFNLENBQUNlLEdBQVAsQ0FBVyxHQUFYLEVBQWdCUCxJQUFJLENBQUNDLElBQUksQ0FBQ08sS0FBTixDQUFwQixFQUFrQ0MsTUFBbEM7QUFDQWpCLE1BQU0sQ0FBQ2UsR0FBUCxDQUFXLE1BQVgsRUFBbUJQLElBQUksRUFBdkIsRUFBMkJVLE9BQTNCO0FBQ0FsQixNQUFNLENBQUNVLElBQVAsQ0FBWSxlQUFaLEVBQTZCRixJQUFJLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFqQyxFQUErQ2hCLFlBQS9DLEVBQTZEaUIsTUFBN0Q7QUFDQXBCLE1BQU0sQ0FBQ3FCLEdBQVAsQ0FBVyxNQUFYLEVBQW1CYixJQUFJLEVBQXZCLEVBQTJCSixZQUEzQixFQUF5Q2tCLE1BQXpDO0FBQ0F0QixNQUFNLENBQUN1QixNQUFQLENBQWMsTUFBZCxFQUFzQmYsSUFBSSxFQUExQixFQUE4QmdCLE9BQTlCO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjFCLE1BQWpCOztBQUVBLFNBQVNXLEtBQVQsQ0FBZWdCLEdBQWYsRUFBb0JDLEdBQXBCLEVBQXlCQyxJQUF6QixFQUErQjtBQUMzQixRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFzQkosR0FBRyxDQUFDSyxJQUFoQztBQUNBMUIsRUFBQUEsV0FBVyxDQUNOSyxLQURMLENBQ1c7QUFBRW1CLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxHQURYLEVBRUtFLElBRkwsQ0FFVSxDQUFDO0FBQUVDLElBQUFBLElBQUY7QUFBUUMsSUFBQUE7QUFBUixHQUFELEtBQXFCO0FBQ3ZCUCxJQUFBQSxHQUFHLENBQUNRLElBQUosQ0FBUztBQUFFRixNQUFBQSxJQUFGO0FBQVFDLE1BQUFBO0FBQVIsS0FBVDtBQUNILEdBSkwsRUFLS0UsS0FMTCxDQUtXUixJQUxYO0FBTUg7O0FBRUQsU0FBU2hCLFFBQVQsQ0FBa0JjLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJGLEVBQUFBLEdBQUcsQ0FBQ0ssSUFBSixDQUFTTSxJQUFULEdBQWdCN0IsSUFBSSxDQUFDVSxLQUFyQjtBQUNBYixFQUFBQSxXQUFXLENBQ05PLFFBREwsQ0FDY2MsR0FBRyxDQUFDSyxJQURsQixFQUN3QkwsR0FBRyxDQUFDWixHQUFKLENBQVEsUUFBUixDQUR4QixFQUVLa0IsSUFGTCxDQUVVLENBQUM7QUFBRUMsSUFBQUEsSUFBRjtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsS0FBcUI7QUFDdkIsV0FBT1AsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFDWkYsTUFBQUEsSUFEWTtBQUVaQyxNQUFBQSxLQUZZO0FBR1pJLE1BQUFBLE9BQU8sRUFDSDtBQUpRLEtBQVQsQ0FBUDtBQU1ILEdBVEwsRUFVS0YsS0FWTCxDQVVXUixJQVZYO0FBV0g7O0FBRUQsU0FBU2pCLGdCQUFULENBQTBCZSxHQUExQixFQUErQkMsR0FBL0IsRUFBb0NDLElBQXBDLEVBQTBDO0FBQ3RDRixFQUFBQSxHQUFHLENBQUNLLElBQUosQ0FBU00sSUFBVCxHQUFnQjdCLElBQUksQ0FBQytCLFFBQXJCO0FBQ0FsQyxFQUFBQSxXQUFXLENBQ05PLFFBREwsQ0FDY2MsR0FBRyxDQUFDSyxJQURsQixFQUN3QkwsR0FBRyxDQUFDWixHQUFKLENBQVEsUUFBUixDQUR4QixFQUVLa0IsSUFGTCxDQUVVLENBQUM7QUFBRUMsSUFBQUEsSUFBRjtBQUFRQyxJQUFBQTtBQUFSLEdBQUQsS0FBcUI7QUFDdkIsV0FBT1AsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFDWkYsTUFBQUEsSUFEWTtBQUVaQyxNQUFBQSxLQUZZO0FBR1pJLE1BQUFBLE9BQU8sRUFDSDtBQUpRLEtBQVQsQ0FBUDtBQU1ILEdBVEwsRUFVS0YsS0FWTCxDQVVXUixJQVZYO0FBV0g7O0FBRUQsU0FBU2YsV0FBVCxDQUFxQmEsR0FBckIsRUFBMEJDLEdBQTFCLEVBQStCQyxJQUEvQixFQUFxQztBQUNqQ3ZCLEVBQUFBLFdBQVcsQ0FDTlEsV0FETCxDQUNpQmEsR0FBRyxDQUFDSyxJQURyQixFQUVLQyxJQUZMLENBRVUsTUFBTUwsR0FBRyxDQUFDUSxJQUFKLENBQVM7QUFBRUcsSUFBQUEsT0FBTyxFQUFFO0FBQVgsR0FBVCxDQUZoQixFQUdLRixLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTWixNQUFULENBQWdCVSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDO0FBQzVCdkIsRUFBQUEsV0FBVyxDQUNOVyxNQURMLEdBRUtnQixJQUZMLENBRVdRLFFBQUQsSUFBY2IsR0FBRyxDQUFDUSxJQUFKLENBQVNLLFFBQVQsQ0FGeEIsRUFHS0osS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1gsT0FBVCxDQUFpQlMsR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QjtBQUNBLE1BQUlhLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUFaLENBQU4sS0FBMEJqQixHQUFHLENBQUNPLElBQUosQ0FBU1UsRUFBbkMsSUFBeUNqQixHQUFHLENBQUNPLElBQUosQ0FBU0ksSUFBVCxLQUFrQjdCLElBQUksQ0FBQ08sS0FBcEUsRUFBMkU7QUFDdkUsV0FBT1ksR0FBRyxDQUFDaUIsTUFBSixDQUFXLEdBQVgsRUFBZ0JULElBQWhCLENBQXFCO0FBQUVHLE1BQUFBLE9BQU8sRUFBRTtBQUFYLEtBQXJCLENBQVA7QUFDSDs7QUFFRGpDLEVBQUFBLFdBQVcsQ0FDTlksT0FETCxDQUNhUyxHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBRHhCLEVBRUtYLElBRkwsQ0FFV2EsT0FBRCxJQUFjQSxPQUFPLEdBQUdsQixHQUFHLENBQUNRLElBQUosQ0FBU1UsT0FBVCxDQUFILEdBQXVCbEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGdEQsRUFHS1YsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsTUFBVCxDQUFnQk8sR0FBaEIsRUFBcUJDLEdBQXJCLEVBQTBCQyxJQUExQixFQUFnQztBQUM1QnZCLEVBQUFBLFdBQVcsQ0FDTmMsTUFETCxDQUNZTyxHQUFHLENBQUNLLElBRGhCLEVBRUtDLElBRkwsQ0FFV2EsT0FBRCxJQUFhbEIsR0FBRyxDQUFDUSxJQUFKLENBQVNVLE9BQVQsQ0FGdkIsRUFHS1QsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsTUFBVCxDQUFnQkssR0FBaEIsRUFBcUJDLEdBQXJCLEVBQTBCQyxJQUExQixFQUFnQztBQUM1QjtBQUNBLE1BQUlhLE1BQU0sQ0FBQ2YsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUFaLENBQU4sS0FBMEJqQixHQUFHLENBQUNPLElBQUosQ0FBU1UsRUFBbkMsSUFBeUNqQixHQUFHLENBQUNPLElBQUosQ0FBU0ksSUFBVCxLQUFrQjdCLElBQUksQ0FBQ08sS0FBcEUsRUFBMkU7QUFDdkUsV0FBT1ksR0FBRyxDQUFDaUIsTUFBSixDQUFXLEdBQVgsRUFBZ0JULElBQWhCLENBQXFCO0FBQUVHLE1BQUFBLE9BQU8sRUFBRTtBQUFYLEtBQXJCLENBQVA7QUFDSDs7QUFFRGpDLEVBQUFBLFdBQVcsQ0FDTmdCLE1BREwsQ0FDWUssR0FBRyxDQUFDZ0IsTUFBSixDQUFXQyxFQUR2QixFQUMyQmpCLEdBQUcsQ0FBQ0ssSUFEL0IsRUFFS0MsSUFGTCxDQUVXYSxPQUFELElBQWFsQixHQUFHLENBQUNRLElBQUosQ0FBU1UsT0FBVCxDQUZ2QixFQUdLVCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxPQUFULENBQWlCRyxHQUFqQixFQUFzQkMsR0FBdEIsRUFBMkJDLElBQTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 2
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 492,
"endOffset": 506,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1253,
"endOffset": 1341,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 2
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 2
},
{
"startOffset": 361,
"endOffset": 573,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 3
},
{
"startOffset": 2130,
"endOffset": 2143,
"count": 0
},
{
"startOffset": 2157,
"endOffset": 2355,
"count": 1
},
{
"startOffset": 2297,
"endOffset": 2310,
"count": 0
},
{
"startOffset": 2351,
"endOffset": 2355,
"count": 0
},
{
"startOffset": 2355,
"endOffset": 2373,
"count": 0
}
],
"isBlockCoverage": true
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 7
}
],
"isBlockCoverage": true
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nconst db = require(\"../../../../db\");\n\nclass OrderItem extends Model {\n static get tableName() {\n return tableNames.orderItem;\n }\n\n static get relationMappings() {\n const Order = require(\"../order.model\");\n\n return {\n order: {\n relation: Model.BelongsToOneRelation,\n modelClass: Order,\n join: {\n from: `${tableNames.orderItem}.order_id`,\n to: `${tableNames.order}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = OrderItem;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5tb2RlbC5qcyJdLCJuYW1lcyI6WyJNb2RlbCIsInJlcXVpcmUiLCJ0YWJsZU5hbWVzIiwiZGIiLCJPcmRlckl0ZW0iLCJ0YWJsZU5hbWUiLCJvcmRlckl0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiT3JkZXIiLCJvcmRlciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsU0FBTixTQUF3QkosS0FBeEIsQ0FBOEI7QUFDMUIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLFNBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsS0FBSyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBckI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURiO0FBRUhDLFFBQUFBLFVBQVUsRUFBRUosS0FGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksU0FBVSxXQUQ1QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxLQUFNO0FBRnRCO0FBSEg7QUFESixLQUFQO0FBVUg7O0FBbEJ5Qjs7QUFxQjlCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxTQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIE9yZGVySXRlbSBleHRlbmRzIE1vZGVsIHtcbiAgICBzdGF0aWMgZ2V0IHRhYmxlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRhYmxlTmFtZXMub3JkZXJJdGVtO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgY29uc3QgT3JkZXIgPSByZXF1aXJlKFwiLi4vb3JkZXIubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9yZGVyOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5vcmRlckl0ZW19Lm9yZGVyX2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9yZGVySXRlbTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../constants/tableNames\");\nconst db = require(\"../../../../db\");\n\nclass OrderItem extends Model {\n static get tableName() {\n return tableNames.orderItem;\n }\n\n static get relationMappings() {\n const Order = require(\"../order.model\");\n\n return {\n order: {\n relation: Model.BelongsToOneRelation,\n modelClass: Order,\n join: {\n from: `${tableNames.orderItem}.order_id`,\n to: `${tableNames.order}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = OrderItem;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/orderItemmodel_10e63b1a8412bd6178b37fc6f3f982c9.map",
"wrapperLength": 89
},
"result": {
"scriptId": "28",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2971,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2968,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "OrderItem",
"ranges": [
{
"startOffset": 236,
"endOffset": 236,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 277,
"endOffset": 331,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 342,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 0,
"numPassingTests": 2,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827174422,
"runtime": 863,
"slow": false,
"start": 1610827173559
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/test/api.test.js",
"testResults": [
{
"ancestorTitles": [
"GET /api/v1"
],
"duration": 22,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET /api/v1 responds with a json message",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "responds with a json message"
},
{
"ancestorTitles": [
"GET /api/v1/emojis"
],
"duration": 26,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET /api/v1/emojis responds with a json message",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "responds with a json message"
}
],
"failureMessage": null,
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 1
}
],
"isBlockCoverage": true
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFFQSxNQUFNUSxPQUFPLEdBQUdSLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qjs7QUFDQSxNQUFNUyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFDQSxNQUFNVSxLQUFLLEdBQUdWLE9BQU8sQ0FBQyxzQkFBRCxDQUFyQjs7QUFFQSxNQUFNVyxNQUFNLEdBQUdaLE9BQU8sQ0FBQ2EsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWYsQyxDQUlBOztBQUNBRixNQUFNLENBQUNHLEdBQVAsQ0FBVyx1QkFBWCxFQUFvQ04sT0FBcEM7QUFDQUcsTUFBTSxDQUFDRyxHQUFQLENBQVcsbUJBQVgsRUFBZ0NMLElBQWhDO0FBQ0FFLE1BQU0sQ0FBQ0csR0FBUCxDQUFXLG9CQUFYLEVBQWlDSixLQUFqQztBQUVBQyxNQUFNLENBQUNJLElBQVAsQ0FBWSxHQUFaLEVBQWlCVixJQUFJLENBQUMsQ0FBQ0MsSUFBSSxDQUFDVSxLQUFOLENBQUQsQ0FBckIsRUFBcUNmLFlBQXJDLEVBQW1EZ0IsTUFBbkQ7QUFDQU4sTUFBTSxDQUFDTyxLQUFQLENBQWEsTUFBYixFQUFxQmIsSUFBSSxDQUFDLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFELENBQXpCLEVBQXlDZCxZQUF6QyxFQUF1RGlCLE1BQXZEO0FBQ0FSLE1BQU0sQ0FBQ1MsR0FBUCxDQUFXLEdBQVgsRUFBZ0JmLElBQUksQ0FBQyxDQUFDQyxJQUFJLENBQUNlLEtBQU4sQ0FBRCxDQUFwQixFQUFvQ0MsZUFBcEM7QUFDQVgsTUFBTSxDQUFDUyxHQUFQLENBQVcsT0FBWCxFQUFvQmYsSUFBSSxDQUFDLENBQUNDLElBQUksQ0FBQ1UsS0FBTixDQUFELENBQXhCLEVBQXdDTyxjQUF4QztBQUNBWixNQUFNLENBQUNTLEdBQVAsQ0FBVyxNQUFYLEVBQW1CZixJQUFJLENBQUMsQ0FBQ0MsSUFBSSxDQUFDZSxLQUFOLEVBQWFmLElBQUksQ0FBQ1UsS0FBbEIsQ0FBRCxDQUF2QixFQUFtRFEsY0FBbkQ7QUFDQWIsTUFBTSxDQUFDYyxNQUFQLENBQWMsTUFBZCxFQUFzQnBCLElBQUksQ0FBQyxDQUFDQyxJQUFJLENBQUNlLEtBQU4sRUFBYWYsSUFBSSxDQUFDVSxLQUFsQixDQUFELENBQTFCLEVBQXNEVSxjQUF0RDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJqQixNQUFqQjs7QUFFQSxTQUFTTSxNQUFULENBQWdCWSxHQUFoQixFQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDO0FBQzVCRixFQUFBQSxHQUFHLENBQUNHLElBQUosQ0FBU0MsUUFBVCxHQUFvQkosR0FBRyxDQUFDSyxJQUFKLENBQVNDLEVBQTdCO0FBQ0FoQyxFQUFBQSxjQUFjLENBQ1RjLE1BREwsQ0FDWVksR0FBRyxDQUFDRyxJQURoQixFQUVLSSxJQUZMLENBRVdDLE9BQUQsSUFBYVAsR0FBRyxDQUFDUSxJQUFKLENBQVNELE9BQVQsQ0FGdkIsRUFHS0UsS0FITCxDQUdXUixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsZUFBVCxDQUF5Qk8sR0FBekIsRUFBOEJDLEdBQTlCLEVBQW1DQyxJQUFuQyxFQUF5QztBQUNyQzVCLEVBQUFBLGNBQWMsQ0FDVG1CLGVBREwsR0FFS2MsSUFGTCxDQUVXSSxTQUFELElBQWU7QUFDakJWLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTL0IsV0FBVyxDQUFDc0IsR0FBRyxDQUFDSyxJQUFMLEVBQVdNLFNBQVgsQ0FBcEI7QUFDSCxHQUpMLEVBS0tELEtBTEwsQ0FLV1IsSUFMWDtBQU1IOztBQUNELFNBQVNSLGNBQVQsQ0FBd0JNLEdBQXhCLEVBQTZCQyxHQUE3QixFQUFrQ0MsSUFBbEMsRUFBd0M7QUFDcEM1QixFQUFBQSxjQUFjLENBQ1RvQixjQURMLENBQ29CTSxHQUFHLENBQUNLLElBQUosQ0FBU0MsRUFEN0IsRUFFS0MsSUFGTCxDQUVXSSxTQUFELElBQ0ZBLFNBQVMsR0FBR1YsR0FBRyxDQUFDUSxJQUFKLENBQVNFLFNBQVQsQ0FBSCxHQUF5QlYsR0FBRyxDQUFDVyxVQUFKLENBQWUsR0FBZixDQUgxQyxFQUtLRixLQUxMLENBS1dSLElBTFg7QUFNSDs7QUFDRCxTQUFTUCxjQUFULENBQXdCSyxHQUF4QixFQUE2QkMsR0FBN0IsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3BDO0FBQ0E1QixFQUFBQSxjQUFjLENBQ1RxQixjQURMLENBQ29CSyxHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFEL0IsRUFFS0MsSUFGTCxDQUVXQyxPQUFELElBQWE7QUFDZixRQUNJQSxPQUFPLENBQUNKLFFBQVIsS0FBcUJKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQyxFQUE5QixJQUNBTixHQUFHLENBQUNLLElBQUosQ0FBU1MsSUFBVCxLQUFrQnJDLElBQUksQ0FBQ2UsS0FGM0IsRUFHRTtBQUNFLGFBQU9TLEdBQUcsQ0FBQ2MsTUFBSixDQUFXLEdBQVgsRUFBZ0JOLElBQWhCLENBQXFCO0FBQUVPLFFBQUFBLE9BQU8sRUFBRTtBQUFYLE9BQXJCLENBQVA7QUFDSDs7QUFFRGYsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNELE9BQVQ7QUFDSCxHQVhMLEVBWUtFLEtBWkwsQ0FZV1IsSUFaWDtBQWFIOztBQUVELFNBQVNaLE1BQVQsQ0FBZ0JVLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUI7QUFDQTVCLEVBQUFBLGNBQWMsQ0FDVDJDLGFBREwsQ0FDbUI7QUFBRVgsSUFBQUEsRUFBRSxFQUFFTixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBakI7QUFBcUJGLElBQUFBLFFBQVEsRUFBRUosR0FBRyxDQUFDSyxJQUFKLENBQVNDO0FBQXhDLEdBRG5CLEVBQ2lFTixHQUFHLENBQUNHLElBRHJFLEVBRUtJLElBRkwsQ0FFV0MsT0FBRCxJQUFhUCxHQUFHLENBQUNRLElBQUosQ0FBU0QsT0FBVCxDQUZ2QixFQUdLRSxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxjQUFULENBQXdCRyxHQUF4QixFQUE2QkMsR0FBN0IsRUFBa0NDLElBQWxDLEVBQXdDO0FBQ3BDO0FBQ0E1QixFQUFBQSxjQUFjLENBQ1Q0QyxPQURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
},
{
"leaks": false,
"numFailingTests": 0,
"numPassingTests": 2,
"numPendingTests": 0,
"numTodoTests": 0,
"openHandles": [],
"perfStats": {
"end": 1610827175506,
"runtime": 898,
"slow": false,
"start": 1610827174608
},
"skipped": false,
"snapshot": {
"added": 0,
"fileDeleted": false,
"matched": 0,
"unchecked": 0,
"unmatched": 0,
"updated": 0,
"uncheckedKeys": []
},
"testFilePath": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/test/app.test.js",
"testResults": [
{
"ancestorTitles": [
"app"
],
"duration": 34,
"failureDetails": [],
"failureMessages": [],
"fullName": "app responds with a not found message",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "responds with a not found message"
},
{
"ancestorTitles": [
"GET /"
],
"duration": 15,
"failureDetails": [],
"failureMessages": [],
"fullName": "GET / responds with a json message",
"location": null,
"numPassingAsserts": 0,
"status": "passed",
"title": "responds with a json message"
}
],
"failureMessage": null,
"v8Coverage": [
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst morgan = require(\"morgan\");\n\nconst compression = require(\"compression\");\n\nconst helmet = require(\"helmet\");\n\nconst cors = require(\"cors\"); // Swagger stuff\n\n\nrequire(\"rootpath\")();\n\nconst swaggerUi = require(\"swagger-ui-express\");\n\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\n\nconst api = require(\"./api\");\n\nconst app = express();\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\"\n });\n});\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\nmodule.exports = app;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsIm1vcmdhbiIsImNvbXByZXNzaW9uIiwiaGVsbWV0IiwiY29ycyIsInN3YWdnZXJVaSIsInN3YWdnZXJEb2MiLCJjb25maWciLCJtaWRkbGV3YXJlcyIsImFwaSIsImFwcCIsInVzZSIsImpzb24iLCJnZXQiLCJyZXEiLCJyZXMiLCJtZXNzYWdlIiwic2VydmUiLCJzZXR1cCIsIm5vdEZvdW5kIiwiZXJyb3JIYW5kbGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1FLFdBQVcsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBM0I7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNSSxJQUFJLEdBQUdKLE9BQU8sQ0FBQyxNQUFELENBQXBCLEMsQ0FFQTs7O0FBQ0FBLE9BQU8sQ0FBQyxVQUFELENBQVA7O0FBQ0EsTUFBTUssU0FBUyxHQUFHTCxPQUFPLENBQUMsb0JBQUQsQ0FBekI7O0FBQ0EsTUFBTU0sVUFBVSxHQUFHTixPQUFPLENBQUMsc0JBQUQsQ0FBMUI7O0FBRUFBLE9BQU8sQ0FBQyxRQUFELENBQVAsQ0FBa0JPLE1BQWxCOztBQUVBLE1BQU1DLFdBQVcsR0FBR1IsT0FBTyxDQUFDLGVBQUQsQ0FBM0I7O0FBQ0EsTUFBTVMsR0FBRyxHQUFHVCxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFFQSxNQUFNVSxHQUFHLEdBQUdYLE9BQU8sRUFBbkI7QUFFQVcsR0FBRyxDQUFDQyxHQUFKLENBQVFWLE1BQU0sQ0FBQyxLQUFELENBQWQ7QUFDQVMsR0FBRyxDQUFDQyxHQUFKLENBQVFSLE1BQU0sRUFBZDtBQUNBTyxHQUFHLENBQUNDLEdBQUosQ0FBUVAsSUFBSSxFQUFaO0FBQ0FNLEdBQUcsQ0FBQ0MsR0FBSixDQUFRVCxXQUFXLEVBQW5CO0FBQ0FRLEdBQUcsQ0FBQ0MsR0FBSixDQUFRWixPQUFPLENBQUNhLElBQVIsRUFBUjtBQUVBRixHQUFHLENBQUNHLEdBQUosQ0FBUSxHQUFSLEVBQWEsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEtBQWM7QUFDdkJBLEVBQUFBLEdBQUcsQ0FBQ0gsSUFBSixDQUFTO0FBQ0xJLElBQUFBLE9BQU8sRUFBRTtBQURKLEdBQVQ7QUFHSCxDQUpEO0FBTUFOLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFNBQVIsRUFBbUJGLEdBQW5CO0FBQ0FDLEdBQUcsQ0FBQ0MsR0FBSixDQUFRLFdBQVIsRUFBcUJOLFNBQVMsQ0FBQ1ksS0FBL0IsRUFBc0NaLFNBQVMsQ0FBQ2EsS0FBVixDQUFnQlosVUFBaEIsQ0FBdEM7QUFFQUksR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1csUUFBcEI7QUFDQVQsR0FBRyxDQUFDQyxHQUFKLENBQVFILFdBQVcsQ0FBQ1ksWUFBcEI7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCWixHQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IG1vcmdhbiA9IHJlcXVpcmUoXCJtb3JnYW5cIik7XG5jb25zdCBjb21wcmVzc2lvbiA9IHJlcXVpcmUoXCJjb21wcmVzc2lvblwiKTtcbmNvbnN0IGhlbG1ldCA9IHJlcXVpcmUoXCJoZWxtZXRcIik7XG5jb25zdCBjb3JzID0gcmVxdWlyZShcImNvcnNcIik7XG5cbi8vIFN3YWdnZXIgc3R1ZmZcbnJlcXVpcmUoXCJyb290cGF0aFwiKSgpO1xuY29uc3Qgc3dhZ2dlclVpID0gcmVxdWlyZShcInN3YWdnZXItdWktZXhwcmVzc1wiKTtcbmNvbnN0IHN3YWdnZXJEb2MgPSByZXF1aXJlKFwiLi4vZG9jcy9zd2FnZ2VyLmpzb25cIik7XG5cbnJlcXVpcmUoXCJkb3RlbnZcIikuY29uZmlnKCk7XG5cbmNvbnN0IG1pZGRsZXdhcmVzID0gcmVxdWlyZShcIi4vbWlkZGxld2FyZXNcIik7XG5jb25zdCBhcGkgPSByZXF1aXJlKFwiLi9hcGlcIik7XG5cbmNvbnN0IGFwcCA9IGV4cHJlc3MoKTtcblxuYXBwLnVzZShtb3JnYW4oXCJkZXZcIikpO1xuYXBwLnVzZShoZWxtZXQoKSk7XG5hcHAudXNlKGNvcnMoKSk7XG5hcHAudXNlKGNvbXByZXNzaW9uKCkpO1xuYXBwLnVzZShleHByZXNzLmpzb24oKSk7XG5cbmFwcC5nZXQoXCIvXCIsIChyZXEsIHJlcykgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogXCLwn6aE8J+MiOKcqPCfkYvwn4yO8J+MjfCfjI/inKjwn4yI8J+mhFwiLFxuICAgIH0pO1xufSk7XG5cbmFwcC51c2UoXCIvYXBpL3YxXCIsIGFwaSk7XG5hcHAudXNlKFwiL2FwaS1kb2NzXCIsIHN3YWdnZXJVaS5zZXJ2ZSwgc3dhZ2dlclVpLnNldHVwKHN3YWdnZXJEb2MpKTtcblxuYXBwLnVzZShtaWRkbGV3YXJlcy5ub3RGb3VuZCk7XG5hcHAudXNlKG1pZGRsZXdhcmVzLmVycm9ySGFuZGxlcik7XG5cbm1vZHVsZS5leHBvcnRzID0gYXBwO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst morgan = require(\"morgan\");\nconst compression = require(\"compression\");\nconst helmet = require(\"helmet\");\nconst cors = require(\"cors\");\n\n// Swagger stuff\nrequire(\"rootpath\")();\nconst swaggerUi = require(\"swagger-ui-express\");\nconst swaggerDoc = require(\"../docs/swagger.json\");\n\nrequire(\"dotenv\").config();\n\nconst middlewares = require(\"./middlewares\");\nconst api = require(\"./api\");\n\nconst app = express();\n\napp.use(morgan(\"dev\"));\napp.use(helmet());\napp.use(cors());\napp.use(compression());\napp.use(express.json());\n\napp.get(\"/\", (req, res) => {\n res.json({\n message: \"🦄🌈✨👋🌎🌍🌏✨🌈🦄\",\n });\n});\n\napp.use(\"/api/v1\", api);\napp.use(\"/api-docs\", swaggerUi.serve, swaggerUi.setup(swaggerDoc));\n\napp.use(middlewares.notFound);\napp.use(middlewares.errorHandler);\n\nmodule.exports = app;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/68/app_6855482f668a469a3eba3734dab1ce4c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2128",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4132,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4129,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 669,
"endOffset": 739,
"count": 1
}
],
"isBlockCoverage": true
}
]
}
},
{
"codeTransformResult": {
"code": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n/* eslint-disable no-unused-vars */\n\n\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode); // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZGRsZXdhcmVzLmpzIl0sIm5hbWVzIjpbIm5vdEZvdW5kIiwicmVxIiwicmVzIiwibmV4dCIsInN0YXR1cyIsImVycm9yIiwiRXJyb3IiLCJvcmlnaW5hbFVybCIsImVycm9ySGFuZGxlciIsImVyciIsInN0YXR1c0NvZGUiLCJjb25zb2xlIiwibG9nIiwianNvbiIsIm1lc3NhZ2UiLCJzdGFjayIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCQyxHQUF2QixFQUE0QkMsSUFBNUIsRUFBa0M7QUFDOUJELEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLEdBQVg7QUFDQSxRQUFNQyxLQUFLLEdBQUcsSUFBSUMsS0FBSixDQUFXLG9CQUFtQkwsR0FBRyxDQUFDTSxXQUFZLEVBQTlDLENBQWQ7QUFDQUosRUFBQUEsSUFBSSxDQUFDRSxLQUFELENBQUo7QUFDSDtBQUVEOzs7QUFDQSxTQUFTRyxZQUFULENBQXNCQyxHQUF0QixFQUEyQlIsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QztBQUNBLFFBQU1PLFVBQVUsR0FBR1IsR0FBRyxDQUFDUSxVQUFKLEtBQW1CLEdBQW5CLEdBQXlCUixHQUFHLENBQUNRLFVBQTdCLEdBQTBDLEdBQTdEO0FBQ0FSLEVBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXTSxVQUFYLEVBSHVDLENBSXZDOztBQUNBQyxFQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUgsR0FBWjtBQUNBUCxFQUFBQSxHQUFHLENBQUNXLElBQUosQ0FBUztBQUNMQyxJQUFBQSxPQUFPLEVBQUVMLEdBQUcsQ0FBQ0ssT0FBSixJQUFlTCxHQURuQjtBQUVMTSxJQUFBQSxLQUFLLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQXpCLEdBQXdDLElBQXhDLEdBQStDVCxHQUFHLENBQUNNO0FBRnJELEdBQVQ7QUFJSDs7QUFFREksTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JwQixFQUFBQSxRQURhO0FBRWJRLEVBQUFBO0FBRmEsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBub3RGb3VuZChyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcy5zdGF0dXMoNDA0KTtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihg8J+UjSAtIE5vdCBGb3VuZCAtICR7cmVxLm9yaWdpbmFsVXJsfWApO1xuICAgIG5leHQoZXJyb3IpO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuZnVuY3Rpb24gZXJyb3JIYW5kbGVyKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC12YXJzICovXG4gICAgY29uc3Qgc3RhdHVzQ29kZSA9IHJlcy5zdGF0dXNDb2RlICE9PSAyMDAgPyByZXMuc3RhdHVzQ29kZSA6IDUwMDtcbiAgICByZXMuc3RhdHVzKHN0YXR1c0NvZGUpO1xuICAgIC8vIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIGNvbnNvbGUubG9nKGVyci5tZXNzYWdlKTtcbiAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgIHJlcy5qc29uKHtcbiAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLFxuICAgICAgICBzdGFjazogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiID8gXCLwn6WeXCIgOiBlcnIuc3RhY2ssXG4gICAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIG5vdEZvdW5kLFxuICAgIGVycm9ySGFuZGxlcixcbn07XG4iXX0=",
"originalCode": "function notFound(req, res, next) {\n res.status(404);\n const error = new Error(`🔍 - Not Found - ${req.originalUrl}`);\n next(error);\n}\n\n/* eslint-disable no-unused-vars */\nfunction errorHandler(err, req, res, next) {\n /* eslint-enable no-unused-vars */\n const statusCode = res.statusCode !== 200 ? res.statusCode : 500;\n res.status(statusCode);\n // if (process.env.NODE_ENV !== \"production\") console.log(err.message);\n console.log(err);\n res.json({\n message: err.message || err,\n stack: process.env.NODE_ENV === \"production\" ? \"🥞\" : err.stack,\n });\n}\n\nmodule.exports = {\n notFound,\n errorHandler,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b6/middlewares_b610b98000c0bfc3c0666a10bf79f6c8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2261",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3039,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3036,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "notFound",
"ranges": [
{
"startOffset": 89,
"endOffset": 226,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "errorHandler",
"ranges": [
{
"startOffset": 265,
"endOffset": 655,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\"\n });\n});\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwiZ2V0IiwicmVxIiwicmVzIiwianNvbiIsIm1lc3NhZ2UiLCJ1c2UiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUVBLE1BQU1DLE1BQU0sR0FBR0YsT0FBTyxDQUFDRyxNQUFSLEVBQWY7QUFFQUQsTUFBTSxDQUFDRSxHQUFQLENBQVcsR0FBWCxFQUFnQixDQUFDQyxHQUFELEVBQU1DLEdBQU4sS0FBYztBQUMxQkEsRUFBQUEsR0FBRyxDQUFDQyxJQUFKLENBQVM7QUFDTEMsSUFBQUEsT0FBTyxFQUFFO0FBREosR0FBVDtBQUdILENBSkQ7QUFNQU4sTUFBTSxDQUFDTyxHQUFQLENBQVcsV0FBWCxFQUF3QlIsT0FBTyxDQUFDLG9CQUFELENBQS9CO0FBQ0FDLE1BQU0sQ0FBQ08sR0FBUCxDQUFXLFVBQVgsRUFBdUJSLE9BQU8sQ0FBQywwQkFBRCxDQUE5QjtBQUVBUyxNQUFNLENBQUNDLE9BQVAsR0FBaUJULE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcigpO1xuXG5yb3V0ZXIuZ2V0KFwiL1wiLCAocmVxLCByZXMpID0+IHtcbiAgICByZXMuanNvbih7XG4gICAgICAgIG1lc3NhZ2U6IFwiQVBJIC0g8J+Ri/CfjI7wn4yN8J+Mj1wiLFxuICAgIH0pO1xufSk7XG5cbnJvdXRlci51c2UoXCIvYWNjb3VudHNcIiwgcmVxdWlyZShcIi4vYXV0aC9hdXRoLnJvdXRlc1wiKSk7XG5yb3V0ZXIudXNlKFwiL2NvbXBhbnlcIiwgcmVxdWlyZShcIi4vY29tcGFueS9jb21wYW55LnJvdXRlc1wiKSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\n\nconst router = express.Router();\n\nrouter.get(\"/\", (req, res) => {\n res.json({\n message: \"API - 👋🌎🌍🌏\",\n });\n});\n\nrouter.use(\"/accounts\", require(\"./auth/auth.routes\"));\nrouter.use(\"/company\", require(\"./company/company.routes\"));\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/46/index_46150bc44a91011b69db233a13fb0837.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2262",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1667,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1664,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 175,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst router = express.Router();\n\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema\n} = require(\"./auth.validators\");\n\nconst authService = require(\"./auth.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const {\n email,\n password\n } = req.body;\n authService.login({\n email,\n password\n }).then(({\n user,\n token\n }) => {\n res.json({\n user,\n token\n });\n }).catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService.register(req.body, req.get(\"origin\")).then(({\n user,\n token\n }) => {\n return res.json({\n user,\n token,\n message: \"Registration successfull, please check your email for verification instructions\"\n });\n }).catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService.verifyEmail(req.body).then(() => res.json({\n message: \"Verification successfull\"\n })).catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService.getAll().then(accounts => res.json(accounts)).catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.getById(req.params.id).then(account => account ? res.json(account) : res.sendStatus(404)).catch(next);\n}\n\nfunction create(req, res, next) {\n authService.create(req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.update(req.params.id, req.body).then(account => res.json(account)).catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unathorized\"\n });\n }\n\n authService.delete(req.param.id).then(() => res.json({\n message: \"Account deleted successfully\",\n id: req.params.id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwicm91dGVyIiwiUm91dGVyIiwic2lnbmluU2NoZW1hIiwic2lnbnVwU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwidmVyaWZ5RW1haWxTY2hlbWEiLCJhdXRoU2VydmljZSIsImF1dGgiLCJBdXRoIiwiUm9sZSIsInBvc3QiLCJsb2dpbiIsInJlZ2lzdGVyQ3VzdG9tZXIiLCJyZWdpc3RlciIsInZlcmlmeUVtYWlsIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGwiLCJnZXRCeUlkIiwib3duZXIiLCJjcmVhdGUiLCJwdXQiLCJ1cGRhdGUiLCJkZWxldGUiLCJfZGVsZXRlIiwibW9kdWxlIiwiZXhwb3J0cyIsInJlcSIsInJlcyIsIm5leHQiLCJlbWFpbCIsInBhc3N3b3JkIiwiYm9keSIsInRoZW4iLCJ1c2VyIiwidG9rZW4iLCJqc29uIiwiY2F0Y2giLCJyb2xlIiwibWVzc2FnZSIsImN1c3RvbWVyIiwiYWNjb3VudHMiLCJOdW1iZXIiLCJwYXJhbXMiLCJpZCIsInN0YXR1cyIsImFjY291bnQiLCJzZW5kU3RhdHVzIiwicGFyYW0iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixPQUFPLENBQUNHLE1BQVIsRUFBZjs7QUFDQSxNQUFNO0FBQ0ZDLEVBQUFBLFlBREU7QUFFRkMsRUFBQUEsWUFGRTtBQUdGQyxFQUFBQSxZQUhFO0FBSUZDLEVBQUFBO0FBSkUsSUFLRk4sT0FBTyxDQUFDLG1CQUFELENBTFg7O0FBTUEsTUFBTU8sV0FBVyxHQUFHUCxPQUFPLENBQUMsZ0JBQUQsQ0FBM0I7O0FBQ0EsTUFBTTtBQUFFUSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJULE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNVSxJQUFJLEdBQUdWLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7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QTNCLEVBQWlDO0FBQzdCO0FBQ0EsTUFBSWEsTUFBTSxDQUFDZixHQUFHLENBQUNnQixNQUFKLENBQVdDLEVBQVosQ0FBTixLQUEwQmpCLEdBQUcsQ0FBQ08sSUFBSixDQUFTVSxFQUFuQyxJQUF5Q2pCLEdBQUcsQ0FBQ08sSUFBSixDQUFTSSxJQUFULEtBQWtCN0IsSUFBSSxDQUFDTyxLQUFwRSxFQUEyRTtBQUN2RSxXQUFPWSxHQUFHLENBQUNpQixNQUFKLENBQVcsR0FBWCxFQUFnQlQsSUFBaEIsQ0FBcUI7QUFBRUcsTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBckIsQ0FBUDtBQUNIOztBQUVEakMsRUFBQUEsV0FBVyxDQUNOaUIsTUFETCxDQUNZSSxHQUFHLENBQUNxQixLQUFKLENBQVVKLEVBRHRCLEVBRUtYLElBRkwsQ0FFVSxNQUNGTCxHQUFHLENBQUNRLElBQUosQ0FBUztBQUNMRyxJQUFBQSxPQUFPLEVBQUUsOEJBREo7QUFFTEssSUFBQUEsRUFBRSxFQUFFakIsR0FBRyxDQUFDZ0IsTUFBSixDQUFXQztBQUZWLEdBQVQsQ0FIUixFQVFLUCxLQVJMLENBUVdSLElBUlg7QUFTSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKCk7XG5jb25zdCB7XG4gICAgc2lnbmluU2NoZW1hLFxuICAgIHNpZ251cFNjaGVtYSxcbiAgICB1cGRhdGVTY2hlbWEsXG4gICAgdmVyaWZ5RW1haWxTY2hlbWEsXG59ID0gcmVxdWlyZShcIi4vYXV0aC52YWxpZGF0b3JzXCIpO1xuY29uc3QgYXV0aFNlcnZpY2UgPSByZXF1aXJlKFwiLi9hdXRoLnNlcnZpY2VcIik7XG5jb25zdCB7IGF1dGg6IEF1dGggfSA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcm9sZVwiKTtcblxucm91dGVyLnBvc3QoXCIvbG9naW5cIiwgc2lnbmluU2NoZW1hLCBsb2dpbik7XG5yb3V0ZXIucG9zdChcIi9yZWdpc3Rlci1jdXN0b21lclwiLCBzaWdudXBTY2hlbWEsIHJlZ2lzdGVyQ3VzdG9tZXIpO1xucm91dGVyLnBvc3QoXCIvcmVnaXN0ZXItb3duZXJcIiwgc2lnbnVwU2NoZW1hLCByZWdpc3Rlcik7XG5yb3V0ZXIucG9zdChcIi92ZXJpZnktZW1haWxcIiwgdmVyaWZ5RW1haWxTY2hlbWEsIHZlcmlmeUVtYWlsKTtcbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoUm9sZS5hZG1pbiksIGdldEFsbCk7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldEJ5SWQpO1xucm91dGVyLnBvc3QoXCIvY3JlYXRlLXN0YWZmXCIsIEF1dGgoUm9sZS5vd25lciksIHNpZ251cFNjaGVtYSwgY3JlYXRlKTtcbnJvdXRlci5wdXQoXCIvOmlkXCIsIEF1dGgoKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aCgpLCBfZGVsZXRlKTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGxvZ2luKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgeyBlbWFpbCwgcGFzc3dvcmQgfSA9IHJlcS5ib2R5O1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5sb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IHVzZXIsIHRva2VuIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUub3duZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckN1c3RvbWVyKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkucm9sZSA9IFJvbGUuY3VzdG9tZXI7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLnJlZ2lzdGVyKHJlcS5ib2R5LCByZXEuZ2V0KFwib3JpZ2luXCIpKVxuICAgICAgICAudGhlbigoeyB1c2VyLCB0b2tlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgICAgdG9rZW4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgICAgICAgXCJSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bGwsIHBsZWFzZSBjaGVjayB5b3VyIGVtYWlsIGZvciB2ZXJpZmljYXRpb24gaW5zdHJ1Y3Rpb25zXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlFbWFpbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC52ZXJpZnlFbWFpbChyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzLmpzb24oeyBtZXNzYWdlOiBcIlZlcmlmaWNhdGlvbiBzdWNjZXNzZnVsbFwiIH0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbChyZXEsIHJlcywgbmV4dCkge1xuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGwoKVxuICAgICAgICAudGhlbigoYWNjb3VudHMpID0+IHJlcy5qc29uKGFjY291bnRzKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gdXNlcnMgY2FuIGdldCB0aGVpciBvd24gYWNjb3VudCBhbmQgYWRtaW4gY2FuIGdldCBhbnkgYWNjb3VudFxuICAgIGlmIChOdW1iZXIocmVxLnBhcmFtcy5pZCkgIT09IHJlcS51c2VyLmlkICYmIHJlcS51c2VyLnJvbGUgIT09IFJvbGUuYWRtaW4pIHtcbiAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF0aG9yaXplZFwiIH0pO1xuICAgIH1cblxuICAgIGF1dGhTZXJ2aWNlXG4gICAgICAgIC5nZXRCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChhY2NvdW50KSA9PiAoYWNjb3VudCA/IHJlcy5qc29uKGFjY291bnQpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgYXV0aFNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGFjY291bnQpID0+IHJlcy5qc29uKGFjY291bnQpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiB1cGRhdGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAudXBkYXRlKHJlcS5wYXJhbXMuaWQsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigoYWNjb3VudCkgPT4gcmVzLmpzb24oYWNjb3VudCkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIHVzZXJzIGNhbiBkZWxldGUgdGhlaXIgYWNjb3VudHMgYW5kIGFkbWluIGNhbiB1cGRhdGUgYW55IGFjY291bnRcbiAgICBpZiAoTnVtYmVyKHJlcS5wYXJhbXMuaWQpICE9PSByZXEudXNlci5pZCAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdGhvcml6ZWRcIiB9KTtcbiAgICB9XG5cbiAgICBhdXRoU2VydmljZVxuICAgICAgICAuZGVsZXRlKHJlcS5wYXJhbS5pZClcbiAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHJlcy5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkFjY291bnQgZGVsZXRlZCBzdWNjZXNzZnVsbHlcIixcbiAgICAgICAgICAgICAgICBpZDogcmVxLnBhcmFtcy5pZCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst router = express.Router();\nconst {\n signinSchema,\n signupSchema,\n updateSchema,\n verifyEmailSchema,\n} = require(\"./auth.validators\");\nconst authService = require(\"./auth.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\n\nrouter.post(\"/login\", signinSchema, login);\nrouter.post(\"/register-customer\", signupSchema, registerCustomer);\nrouter.post(\"/register-owner\", signupSchema, register);\nrouter.post(\"/verify-email\", verifyEmailSchema, verifyEmail);\nrouter.get(\"/\", Auth(Role.admin), getAll);\nrouter.get(\"/:id\", Auth(), getById);\nrouter.post(\"/create-staff\", Auth(Role.owner), signupSchema, create);\nrouter.put(\"/:id\", Auth(), updateSchema, update);\nrouter.delete(\"/:id\", Auth(), _delete);\n\nmodule.exports = router;\n\nfunction login(req, res, next) {\n const { email, password } = req.body;\n authService\n .login({ email, password })\n .then(({ user, token }) => {\n res.json({ user, token });\n })\n .catch(next);\n}\n\nfunction register(req, res, next) {\n req.body.role = Role.owner;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction registerCustomer(req, res, next) {\n req.body.role = Role.customer;\n authService\n .register(req.body, req.get(\"origin\"))\n .then(({ user, token }) => {\n return res.json({\n user,\n token,\n message:\n \"Registration successfull, please check your email for verification instructions\",\n });\n })\n .catch(next);\n}\n\nfunction verifyEmail(req, res, next) {\n authService\n .verifyEmail(req.body)\n .then(() => res.json({ message: \"Verification successfull\" }))\n .catch(next);\n}\n\nfunction getAll(req, res, next) {\n authService\n .getAll()\n .then((accounts) => res.json(accounts))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n // users can get their own account and admin can get any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .getById(req.params.id)\n .then((account) => (account ? res.json(account) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction create(req, res, next) {\n authService\n .create(req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // users can update their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .update(req.params.id, req.body)\n .then((account) => res.json(account))\n .catch(next);\n}\n\nfunction _delete(req, res, next) {\n // users can delete their accounts and admin can update any account\n if (Number(req.params.id) !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({ message: \"Unathorized\" });\n }\n\n authService\n .delete(req.param.id)\n .then(() =>\n res.json({\n message: \"Account deleted successfully\",\n id: req.params.id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/75/authroutes_75bf7888c8e4ac0a10e44194cc103f96.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2263",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 15260,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 15257,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 919,
"endOffset": 1157,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 1159,
"endOffset": 1486,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "registerCustomer",
"ranges": [
{
"startOffset": 1488,
"endOffset": 1826,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1828,
"endOffset": 1985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 1987,
"endOffset": 2095,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2097,
"endOffset": 2472,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 2474,
"endOffset": 2588,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2590,
"endOffset": 2944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2946,
"endOffset": 3350,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\")\n }; // TODO figure out how admin can update role\n\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGgudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsInNpZ251cFNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJmaXJzdE5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImxhc3ROYW1lIiwicGhvbmVOdW1iZXIiLCJtaW4iLCJtYXgiLCJlbWFpbCIsInBhc3N3b3JkIiwiY29uZmlybVBhc3N3b3JkIiwidmFsaWQiLCJyZWYiLCJzaWduaW5TY2hlbWEiLCJ1cGRhdGVTY2hlbWEiLCJzY2hlbWFSdWxlcyIsImVtcHR5Iiwicm9sZSIsIndpdGgiLCJ2ZXJpZnlFbWFpbFNjaGVtYSIsInRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1DLGVBQWUsR0FBR0QsT0FBTyxDQUFDLG9DQUFELENBQS9COztBQUVBRSxPQUFPLENBQUNDLFlBQVIsR0FBdUIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsU0FBUyxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURXO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLFdBQVcsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFJLEdBQWIsQ0FBaUIsRUFBakIsRUFBcUJDLEdBQXJCLENBQXlCLEVBQXpCLEVBQTZCSixRQUE3QixFQUhTO0FBSXRCO0FBQ0FLLElBQUFBLEtBQUssRUFBRWpCLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLEdBQXFCTCxRQUFyQixFQUxlO0FBTXRCTSxJQUFBQSxRQUFRLEVBQUVsQixHQUFH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bnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLnNpZ251cFNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBmaXJzdE5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLnJlcXVpcmVkKCksXG4gICAgICAgIC8vIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkucmVxdWlyZWQoKSxcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgICAgIGNvbmZpcm1QYXNzd29yZDogSm9pLnN0cmluZygpLnZhbGlkKEpvaS5yZWYoXCJwYXNzd29yZFwiKSkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy5zaWduaW5TY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgZW1haWw6IEpvaS5zdHJpbmcoKS5lbWFpbCgpLnJlcXVpcmVkKCksXG4gICAgICAgIHBhc3N3b3JkOiBKb2kuc3RyaW5nKCkubWluKDgpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIGZpcnN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBsYXN0TmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHJvbGU6IEpvaS5zdHJpbmcoKS5taW4oNSkuZW1wdHkoXCJcIiksXG4gICAgICAgIHBob25lTnVtYmVyOiBKb2kuc3RyaW5nKCkubWluKDEwKS5tYXgoMTUpLmVtcHR5KFwiXCIpLFxuICAgICAgICBwYXNzd29yZDogSm9pLnN0cmluZygpLm1pbig4KS5lbXB0eShcIlwiKSxcbiAgICAgICAgY29uZmlybVBhc3N3b3JkOiBKb2kuc3RyaW5nKCkudmFsaWQoSm9pLnJlZihcInBhc3N3b3JkXCIpKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgLy8gIFRPRE8gZmlndXJlIG91dCBob3cgYWRtaW4gY2FuIHVwZGF0ZSByb2xlXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcykud2l0aChcInBhc3N3b3JkXCIsIFwiY29uZmlybVBhc3N3b3JkXCIpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudmVyaWZ5RW1haWxTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgdG9rZW46IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgIH0pO1xuICAgIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSk7XG59O1xuIl19",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.signupSchema = (req, res, next) => {\n const schema = Joi.object({\n firstName: Joi.string().required(),\n lastName: Joi.string().required(),\n phoneNumber: Joi.string().min(10).max(15).required(),\n // role: Joi.string().min(5).required(),\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.signinSchema = (req, res, next) => {\n const schema = Joi.object({\n email: Joi.string().email().required(),\n password: Joi.string().min(8).required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n firstName: Joi.string().empty(\"\"),\n lastName: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n role: Joi.string().min(5).empty(\"\"),\n phoneNumber: Joi.string().min(10).max(15).empty(\"\"),\n password: Joi.string().min(8).empty(\"\"),\n confirmPassword: Joi.string().valid(Joi.ref(\"password\")).empty(\"\"),\n };\n\n // TODO figure out how admin can update role\n const schema = Joi.object(schemaRules).with(\"password\", \"confirmPassword\");\n\n validateRequest(req, next, schema);\n};\n\nexports.verifyEmailSchema = (req, res, next) => {\n const schema = Joi.object({\n token: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/17/authvalidators_175ce9e7525fe00eae54f078f7ddb132.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2264",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7491,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7488,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signupSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.signinSchema",
"ranges": [
{
"startOffset": 680,
"endOffset": 866,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 892,
"endOffset": 1441,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.verifyEmailSchema",
"ranges": [
{
"startOffset": 1472,
"endOffset": 1604,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false,\n // include all errors\n allowUnknown: true,\n // ignore unknown props\n stripUnknown: true // remove unknown props\n\n };\n const {\n error,\n value\n } = schema.validate(req.body, options);\n\n if (error) {\n const message = `Validation error: ${error.details.map(x => x.message).join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZhbGlkYXRlUmVxdWVzdC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidmFsaWRhdGVSZXF1ZXN0IiwicmVxIiwibmV4dCIsInNjaGVtYSIsIm9wdGlvbnMiLCJhYm9ydEVhcmx5IiwiYWxsb3dVbmtub3duIiwic3RyaXBVbmtub3duIiwiZXJyb3IiLCJ2YWx1ZSIsInZhbGlkYXRlIiwiYm9keSIsIm1lc3NhZ2UiLCJkZXRhaWxzIiwibWFwIiwieCIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLGVBQWpCOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQ0MsTUFBcEMsRUFBNEM7QUFDeEMsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLElBQUFBLFVBQVUsRUFBRSxLQURBO0FBQ087QUFDbkJDLElBQUFBLFlBQVksRUFBRSxJQUZGO0FBRVE7QUFDcEJDLElBQUFBLFlBQVksRUFBRSxJQUhGLENBR1E7O0FBSFIsR0FBaEI7QUFNQSxRQUFNO0FBQUVDLElBQUFBLEtBQUY7QUFBU0MsSUFBQUE7QUFBVCxNQUFtQk4sTUFBTSxDQUFDTyxRQUFQLENBQWdCVCxHQUFHLENBQUNVLElBQXBCLEVBQTBCUCxPQUExQixDQUF6Qjs7QUFDQSxNQUFJSSxLQUFKLEVBQVc7QUFDUCxVQUFNSSxPQUFPLEdBQUkscUJBQW9CSixLQUFLLENBQUNLLE9BQU4sQ0FDaENDLEdBRGdDLENBQzNCQyxDQUFELElBQU9BLENBQUMsQ0FBQ0gsT0FEbUIsRUFFaENJLElBRmdDLENBRTNCLElBRjJCLENBRXJCLEVBRmhCO0FBR0FkLElBQUFBLElBQUksQ0FBQ1UsT0FBRCxDQUFKO0FBQ0gsR0FMRCxNQUtPO0FBQ0hYLElBQUFBLEdBQUcsQ0FBQ1UsSUFBSixHQUFXRixLQUFYO0FBQ0FQLElBQUFBLElBQUk7QUFDUDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0ZVJlcXVlc3Q7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmVxdWVzdChyZXEsIG5leHQsIHNjaGVtYSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGFib3J0RWFybHk6IGZhbHNlLCAvLyBpbmNsdWRlIGFsbCBlcnJvcnNcbiAgICAgICAgYWxsb3dVbmtub3duOiB0cnVlLCAvLyBpZ25vcmUgdW5rbm93biBwcm9wc1xuICAgICAgICBzdHJpcFVua25vd246IHRydWUsIC8vIHJlbW92ZSB1bmtub3duIHByb3BzXG4gICAgfTtcblxuICAgIGNvbnN0IHsgZXJyb3IsIHZhbHVlIH0gPSBzY2hlbWEudmFsaWRhdGUocmVxLmJvZHksIG9wdGlvbnMpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFZhbGlkYXRpb24gZXJyb3I6ICR7ZXJyb3IuZGV0YWlsc1xuICAgICAgICAgICAgLm1hcCgoeCkgPT4geC5tZXNzYWdlKVxuICAgICAgICAgICAgLmpvaW4oXCIsIFwiKX1gO1xuICAgICAgICBuZXh0KG1lc3NhZ2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcS5ib2R5ID0gdmFsdWU7XG4gICAgICAgIG5leHQoKTtcbiAgICB9XG59XG4iXX0=",
"originalCode": "module.exports = validateRequest;\n\nfunction validateRequest(req, next, schema) {\n const options = {\n abortEarly: false, // include all errors\n allowUnknown: true, // ignore unknown props\n stripUnknown: true, // remove unknown props\n };\n\n const { error, value } = schema.validate(req.body, options);\n if (error) {\n const message = `Validation error: ${error.details\n .map((x) => x.message)\n .join(\", \")}`;\n next(message);\n } else {\n req.body = value;\n next();\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b9/validateRequest_b99d25348838cc66f02ed46a322e519c.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2317",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2601,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2598,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "validateRequest",
"ranges": [
{
"startOffset": 124,
"endOffset": 591,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const User = require(\"../user/user.model\");\n\nconst jwt = require(\"../../utils/jwt\");\n\nconst bcrypt = require(\"bcrypt\");\n\nconst crypto = require(\"crypto\");\n\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete\n};\n\nasync function login({\n email,\n password\n}) {\n const account = await getAccount({\n email\n });\n\n if (!account || // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n return {\n user: basicDetails(account),\n token\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error('Email \"' + params.email + '\" is already registered');\n throw error;\n }\n\n const account = await insertUser(params); // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n return {\n user: account,\n token\n };\n}\n\nasync function verifyEmail({\n token\n}) {\n const account = await getAccount({\n verificationToken: token\n });\n if (!account) throw \"Verification failed\";\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({\n email: params.email\n })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params); // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({\n id\n }); // validate if email was changed\n\n if (params.email && account.email !== params.email && (await getAccount({\n email: params.email\n }))) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n } // hash password if it was entered\n\n\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params\n });\n return basicDetails(updatedUser);\n} // TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\n\n\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map(x => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({\n id\n });\n return basicDetails(account);\n} // TODO MAKE IT ACCEPT AN ARRAY OF ID\n\n\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n/**==================== Helpers ====================== */\n\n\nasync function getAccount(param) {\n const account = await User.query().where({ ...param\n }).first();\n return account;\n}\n\nasync function insertUser(params) {\n const {\n firstName,\n lastName,\n email,\n password,\n role,\n phoneNumber\n } = params; // hash password and verification token\n\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString(); // create account\n\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken\n });\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguc2VydmljZS5qcyJdLCJuYW1lcyI6WyJVc2VyIiwicmVxdWlyZSIsImp3dCIsImJjcnlwdCIsImNyeXB0byIsInNlbmRFbWFpbCIsIm1vZHVsZSIsImV4cG9ydHMiLCJsb2dpbiIsInJlZ2lzdGVyIiwidmVyaWZ5RW1haWwiLCJjcmVhdGUiLCJ1cGRhdGUiLCJnZXRBbGwiLCJnZXRCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZSIsImVtYWlsIiwicGFzc3dvcmQiLCJhY2NvdW50IiwiZ2V0QWNjb3VudCIsImNvbXBhcmUiLCJlcnJvciIsIkVycm9yIiwidG9rZW4iLCJzaWduIiwidG9KU09OIiwidXNlciIsImJhc2ljRGV0YWlscyIsInBhcmFtcyIsIm9yaWdpbiIsImluc2VydFVzZXIiLCJ2ZXJpZmljYXRpb25Ub2tlbiIsIiRxdWVyeSIsInBhdGNoIiwidmVyaWZpZWQiLCJEYXRlIiwibm93IiwiaXNWZXJpZmllZCIsImlkIiwiaGFzaCIsInVwZGF0ZWRVc2VyIiwicXVlcnkiLCJwYXRjaEFuZEZldGNoQnlJZCIsImFjY291bnRzIiwibWFwIiwieCIsImRlbGV0ZUJ5SWQiLCJwYXJhbSIsIndoZXJlIiwiZmlyc3QiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsInJvbGUiLCJwaG9uZU51bWJlciIsImhhc2hlZFBhc3N3b3JkIiwicmFuZG9tVG9rZW5TdHJpbmciLCJpbnNlcnQiLCJhY3RpdmUiLCJ0b0lTT1N0cmluZyIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJjcmVhdGVkIiwidXBkYXRlZCIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIm1lc3NhZ2UiLCJ2ZXJpZnlVcmwiLCJ0byIsInN1YmplY3QiLCJodG1sIiwic2VuZEFscmVhZHlSZWdpc3RlcmVkRW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLGlCQUFELENBQW5C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a0IsRUFBakY7QUFDQWlDLElBQUFBLE9BQU8sR0FBSTtzQkFDR0MsU0FBVSxLQUFJQSxTQUFVO1NBRHRDO0FBR0gsR0FMRCxNQUtPO0FBQ0hELElBQUFBLE9BQU8sR0FBSTs4QkFDVzlDLE9BQU8sQ0FBQ2EsaUJBQWtCLGFBRGhEO0FBRUg7O0FBRUQsUUFBTTNCLFNBQVMsQ0FBQztBQUNaOEQsSUFBQUEsRUFBRSxFQUFFaEQsT0FBTyxDQUFDRixLQURBO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUseUNBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHOztVQUVMSixPQUFRO0FBTEUsR0FBRCxDQUFmO0FBT0g7O0FBRUQsZUFBZUssMEJBQWYsQ0FBMENyRCxLQUExQyxFQUFpRGEsTUFBakQsRUFBeUQ7QUFDckQsTUFBSW1DLE9BQUo7O0FBQ0EsTUFBSW5DLE1BQUosRUFBWTtBQUNSbUMsSUFBQUEsT0FBTyxHQUFJLGdFQUErRG5DLE1BQU8sc0RBQWpGO0FBQ0gsR0FGRCxNQUVPO0FBQ0htQyxJQUFBQSxPQUFPLEdBQUksK0dBQVg7QUFDSDs7QUFFRCxRQUFNNUQsU0FBUyxDQUFDO0FBQ1o4RCxJQUFBQSxFQUFFLEVBQUVsRCxLQURRO0FBRVptRCxJQUFBQSxPQUFPLEVBQUUscURBRkc7QUFHWkMsSUFBQUEsSUFBSSxFQUFHO3VDQUN3QnBELEtBQU07aUJBQzVCZ0QsT0FBUTtBQUxMLEdBQUQsQ0FBZjtBQU9IIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgVXNlciA9IHJlcXVpcmUoXCIuLi91c2VyL3VzZXIubW9kZWxcIik7XG5jb25zdCBqd3QgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvand0XCIpO1xuY29uc3QgYmNyeXB0ID0gcmVxdWlyZShcImJjcnlwdFwiKTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG5jb25zdCBzZW5kRW1haWwgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZW1haWxcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIC8qKlxuICAgICAqIHJlZnJlc2h0b2tlblxuICAgICAqIHJldm9rZXRva2VuXG4gICAgICogZm9yZ290UGFzc3dvcmRcbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiB2YWxpZGF0ZVJlc2V0VG9rZW5cbiAgICAgKiByZXNldFBhc3N3b3JkXG4gICAgICovXG4gICAgbG9naW4sXG4gICAgcmVnaXN0ZXIsXG4gICAgdmVyaWZ5RW1haWwsXG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZSxcbiAgICBnZXRBbGwsXG4gICAgZ2V0QnlJZCxcbiAgICBkZWxldGU6IF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBsb2dpbih7IGVtYWlsLCBwYXNzd29yZCB9KSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBlbWFpbCB9KTtcblxuICAgIGlmIChcbiAgICAgICAgIWFjY291bnQgfHxcbiAgICAgICAgLy8gIWFjY291bnQuaXNWZXJpZmllZCB8fFxuICAgICAgICAhKGF3YWl0IGJjcnlwdC5jb21wYXJlKHBhc3N3b3JkLCBhY2NvdW50LnBhc3N3b3JkKSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJFbWFpbCBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudC50b0pTT04oKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBiYXNpY0RldGFpbHMoYWNjb3VudCksXG4gICAgICAgIHRva2VuLFxuICAgIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZ2lzdGVyKHBhcmFtcywgb3JpZ2luKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgLy8gc2VuZCBhbHJlYWR5IHJlZ2lzdGVyZWQgZXJyb3IgaW4gZW1haWwgdG8gcHJldmVudCBhY2NvdW50IGVudW1lcmF0aW9uXG4gICAgICAgIC8vIGF3YWl0IHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKHBhcmFtcy5lbWFpbCwgb3JpZ2luKTtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW1haWwgXCInICsgcGFyYW1zLmVtYWlsICsgJ1wiIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCdcbiAgICAgICAgKTtcblxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgaW5zZXJ0VXNlcihwYXJhbXMpO1xuXG4gICAgLy8gc2VuZCBlbWFpbDtcbiAgICAvLyBhd2FpdCBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKTtcblxuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgand0LnNpZ24oYWNjb3VudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB1c2VyOiBhY2NvdW50LFxuICAgICAgICB0b2tlbixcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlFbWFpbCh7IHRva2VuIH0pIHtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZ2V0QWNjb3VudCh7IHZlcmlmaWNhdGlvblRva2VuOiB0b2tlbiB9KTtcblxuICAgIGlmICghYWNjb3VudCkgdGhyb3cgXCJWZXJpZmljYXRpb24gZmFpbGVkXCI7XG5cbiAgICBhd2FpdCBhY2NvdW50LiRxdWVyeSgpLnBhdGNoKHtcbiAgICAgICAgdmVyaWZpZWQ6IERhdGUubm93KCksXG4gICAgICAgIGlzVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgIHZlcmlmaWNhdGlvblRva2VuOiBudWxsLFxuICAgIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGVcbiAgICBpZiAoYXdhaXQgZ2V0QWNjb3VudCh7IGVtYWlsOiBwYXJhbXMuZW1haWwgfSkpIHtcbiAgICAgICAgdGhyb3cgJ0VtYWlsIFwiJyArIHBhcmFtcy5lbWFpbCArICdcIiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQnO1xuICAgIH1cblxuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBpbnNlcnRVc2VyKHBhcmFtcyk7XG5cbiAgICAvLyBUT0RPPyBiaW5kIHRvIGNvbXBhbnkgaGVyZS5cblxuICAgIHJldHVybiBiYXNpY0RldGFpbHMoYWNjb3VudCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGdldEFjY291bnQoeyBpZCB9KTtcblxuICAgIC8vIHZhbGlkYXRlIGlmIGVtYWlsIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMuZW1haWwgJiZcbiAgICAgICAgYWNjb3VudC5lbWFpbCAhPT0gcGFyYW1zLmVtYWlsICYmXG4gICAgICAgIChhd2FpdCBnZXRBY2NvdW50KHsgZW1haWw6IHBhcmFtcy5lbWFpbCB9KSlcbiAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEVtYWlsICR7cGFyYW1zLmVtYWlsfSBpcyBhbHJlYWR5IHRha2VuYCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgaWYgaXQgd2FzIGVudGVyZWRcbiAgICBpZiAocGFyYW1zLnBhc3N3b3JkKSB7XG4gICAgICAgIHBhcmFtcy5wYXNzd29yZCA9IGF3YWl0IGhhc2gocGFyYW1zLnBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkVXNlciA9IGF3YWl0IFVzZXIucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgeyAuLi5wYXJhbXMgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKHVwZGF0ZWRVc2VyKTtcbn1cblxuLy8gVE9ETyBNQUtFIFNPIElUIENBTiBRVUVSWSBGT1IgRElGRkVSRU5UIFRZUEVTIE9GIFVTRVJTXG5hc3luYyBmdW5jdGlvbiBnZXRBbGwoKSB7XG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBVc2VyLnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGFjY291bnRzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QnlJZChpZCkge1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBnZXRBY2NvdW50KHsgaWQgfSk7XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhhY2NvdW50KTtcbn1cblxuLy8gVE9ETyBNQUtFIElUIEFDQ0VQVCBBTiBBUlJBWSBPRiBJRFxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShpZCkge1xuICAgIGF3YWl0IFVzZXIucXVlcnkoKS5kZWxldGVCeUlkKGlkKTtcbn1cblxuLyoqPT09PT09PT09PT09PT09PT09PT0gSGVscGVycyA9PT09PT09PT09PT09PT09PT09PT09ICovXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50KHBhcmFtKSB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbSB9KVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gYWNjb3VudDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zZXJ0VXNlcihwYXJhbXMpIHtcbiAgICBjb25zdCB7IGZpcnN0TmFtZSwgbGFzdE5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgcGhvbmVOdW1iZXIgfSA9IHBhcmFtcztcblxuICAgIC8vIGhhc2ggcGFzc3dvcmQgYW5kIHZlcmlmaWNhdGlvbiB0b2tlblxuICAgIGNvbnN0IGhhc2hlZFBhc3N3b3JkID0gYXdhaXQgaGFzaChwYXNzd29yZCwgMTApO1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmFuZG9tVG9rZW5TdHJpbmcoKTtcblxuICAgIC8vIGNyZWF0ZSBhY2NvdW50XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IFVzZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICBlbWFpbCxcbiAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICBsYXN0TmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGhhc2hlZFBhc3N3b3JkLFxuICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICBpc1ZlcmlmaWVkOiBmYWxzZSxcbiAgICAgICAgdmVyaWZpZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmFzaWNEZXRhaWxzKGFjY291bnQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYXNoKHBhc3N3b3JkKSB7XG4gICAgcmV0dXJuIGF3YWl0IGJjcnlwdC5oYXNoKHBhc3N3b3JkLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJhbmRvbVRva2VuU3RyaW5nKCkge1xuICAgIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoNDApLnRvU3RyaW5nKFwiaGV4XCIpO1xufVxuXG5mdW5jdGlvbiBiYXNpY0RldGFpbHMoYWNjb3VudCkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGZpcnN0TmFtZSxcbiAgICAgICAgbGFzdE5hbWUsXG4gICAgICAgIGVtYWlsLFxuICAgICAgICByb2xlLFxuICAgICAgICBjcmVhdGVkLFxuICAgICAgICB1cGRhdGVkLFxuICAgICAgICBpc1ZlcmlmaWVkLFxuICAgIH0gPSBhY2NvdW50O1xuICAgIHJldHVybiB7XG4gICAgICAgIGlkLFxuICAgICAgICBmaXJzdE5hbWUsXG4gICAgICAgIGxhc3ROYW1lLFxuICAgICAgICBlbWFpbCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY3JlYXRlZCxcbiAgICAgICAgdXBkYXRlZCxcbiAgICAgICAgaXNWZXJpZmllZCxcbiAgICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVmVyaWZpY2F0aW9uRW1haWwoYWNjb3VudCwgb3JpZ2luKSB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgICBjb25zdCB2ZXJpZnlVcmwgPSBgJHtvcmlnaW59L2F1dGgvdmVyaWZ5LWVtYWlsP3Rva2VuPSR7YWNjb3VudC52ZXJpZmljYXRpb25Ub2tlbn1gO1xuICAgICAgICBtZXNzYWdlID0gYDxwPiBQbGVhc2UgY2xpY2sgdGhlIGJlbG93IGxpbmsgdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzczo8L3A+XG4gICAgICAgIDxwPjxhIGhyZWY9XCIke3ZlcmlmeVVybH1cIj4ke3ZlcmlmeVVybH08L2E+PC9wPlxuICAgICAgICBgO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+UGxlYXNlIHVzZSB0aGUgYmVsb3cgdG9rZW4gdG8gdmVyaWZ5IHlvdXIgZW1haWwgYWRkcmVzcyB3aXRoIHRoZSA8Y29kZT4vYXV0aC92ZXJpZnktZW1haWw8L2NvZGU+IGFwaSByb3V0ZTo8L3A+XG4gICAgICAgICAgICAgICAgICAgPHA+PGNvZGU+JHthY2NvdW50LnZlcmlmaWNhdGlvblRva2VufTwvY29kZT48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogYWNjb3VudC5lbWFpbCxcbiAgICAgICAgc3ViamVjdDogXCJTaWduLXVwIHZlcmlmaWNhdGlvbiBBUEkgLSBWZXJpZnkgRW1haWxcIixcbiAgICAgICAgaHRtbDogYDxoND5WZXJpZnkgRW1haWw8L2g0PlxuICAgICAgICA8cD5UaGFua3MgZm9yIHJlZ2lzdGVyaW5nITwvcD5cbiAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNlbmRBbHJlYWR5UmVnaXN0ZXJlZEVtYWlsKGVtYWlsLCBvcmlnaW4pIHtcbiAgICBsZXQgbWVzc2FnZTtcbiAgICBpZiAob3JpZ2luKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgPHA+SWYgeW91IGRvbid0IGtub3cgeW91ciBwYXNzd29yZCBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9XCIke29yaWdpbn0vYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIj5mb3Jnb3QgcGFzc3dvcmQ8L2E+IHBhZ2UuPC9wPmA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGA8cD5JZiB5b3UgZG9uJ3Qga25vdyB5b3VyIHBhc3N3b3JkIHlvdSBjYW4gcmVzZXQgaXQgdmlhIHRoZSA8Y29kZT4vYXV0aC9mb3Jnb3QtcGFzc3dvcmQ8L2NvZGU+IGFwaSByb3V0ZS48L3A+YDtcbiAgICB9XG5cbiAgICBhd2FpdCBzZW5kRW1haWwoe1xuICAgICAgICB0bzogZW1haWwsXG4gICAgICAgIHN1YmplY3Q6IFwiU2lnbi11cCBWZXJpZmljYXRpb24gQVBJIC0gRW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkXCIsXG4gICAgICAgIGh0bWw6IGA8aDQ+RW1haWwgQWxyZWFkeSBSZWdpc3RlcmVkPC9oND5cbiAgICAgICAgICAgICAgIDxwPllvdXIgZW1haWwgPHN0cm9uZz4ke2VtYWlsfTwvc3Ryb25nPiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuPC9wPlxuICAgICAgICAgICAgICAgJHttZXNzYWdlfWAsXG4gICAgfSk7XG59XG4iXX0=",
"originalCode": "const User = require(\"../user/user.model\");\nconst jwt = require(\"../../utils/jwt\");\nconst bcrypt = require(\"bcrypt\");\nconst crypto = require(\"crypto\");\nconst sendEmail = require(\"../../utils/email\");\n\nmodule.exports = {\n /**\n * refreshtoken\n * revoketoken\n * forgotPassword\n * validateResetToken\n * validateResetToken\n * resetPassword\n */\n login,\n register,\n verifyEmail,\n create,\n update,\n getAll,\n getById,\n delete: _delete,\n};\n\nasync function login({ email, password }) {\n const account = await getAccount({ email });\n\n if (\n !account ||\n // !account.isVerified ||\n !(await bcrypt.compare(password, account.password))\n ) {\n const error = new Error(\"Email or password is incorrect\");\n throw error;\n }\n\n const token = await jwt.sign(account.toJSON());\n\n return {\n user: basicDetails(account),\n token,\n };\n}\n\nasync function register(params, origin) {\n // validate\n if (await getAccount({ email: params.email })) {\n // send already registered error in email to prevent account enumeration\n // await sendAlreadyRegisteredEmail(params.email, origin);\n const error = new Error(\n 'Email \"' + params.email + '\" is already registered'\n );\n\n throw error;\n }\n\n const account = await insertUser(params);\n\n // send email;\n // await sendVerificationEmail(account, origin);\n\n const token = await jwt.sign(account);\n\n return {\n user: account,\n token,\n };\n}\n\nasync function verifyEmail({ token }) {\n const account = await getAccount({ verificationToken: token });\n\n if (!account) throw \"Verification failed\";\n\n await account.$query().patch({\n verified: Date.now(),\n isVerified: true,\n verificationToken: null,\n });\n}\n\nasync function create(params) {\n // validate\n if (await getAccount({ email: params.email })) {\n throw 'Email \"' + params.email + '\" is already registered';\n }\n\n const account = await insertUser(params);\n\n // TODO? bind to company here.\n\n return basicDetails(account);\n}\n\nasync function update(id, params) {\n const account = await getAccount({ id });\n\n // validate if email was changed\n if (\n params.email &&\n account.email !== params.email &&\n (await getAccount({ email: params.email }))\n ) {\n const error = new Error(`Email ${params.email} is already taken`);\n throw error;\n }\n\n // hash password if it was entered\n if (params.password) {\n params.password = await hash(params.password);\n }\n\n const updatedUser = await User.query().patchAndFetchById(id, { ...params });\n\n return basicDetails(updatedUser);\n}\n\n// TODO MAKE SO IT CAN QUERY FOR DIFFERENT TYPES OF USERS\nasync function getAll() {\n const accounts = await User.query();\n return accounts.map((x) => basicDetails(x));\n}\n\nasync function getById(id) {\n const account = await getAccount({ id });\n return basicDetails(account);\n}\n\n// TODO MAKE IT ACCEPT AN ARRAY OF ID\nasync function _delete(id) {\n await User.query().deleteById(id);\n}\n\n/**==================== Helpers ====================== */\nasync function getAccount(param) {\n const account = await User.query()\n .where({ ...param })\n .first();\n return account;\n}\n\nasync function insertUser(params) {\n const { firstName, lastName, email, password, role, phoneNumber } = params;\n\n // hash password and verification token\n const hashedPassword = await hash(password, 10);\n const verificationToken = randomTokenString();\n\n // create account\n const account = await User.query().insert({\n email,\n firstName,\n lastName,\n password: hashedPassword,\n phoneNumber,\n role: role,\n active: true,\n isVerified: false,\n verified: new Date().toISOString(),\n verificationToken,\n });\n\n return basicDetails(account);\n}\n\nasync function hash(password) {\n return await bcrypt.hash(password, 10);\n}\n\nfunction randomTokenString() {\n return crypto.randomBytes(40).toString(\"hex\");\n}\n\nfunction basicDetails(account) {\n const {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n } = account;\n return {\n id,\n firstName,\n lastName,\n email,\n role,\n created,\n updated,\n isVerified,\n };\n}\n\nasync function sendVerificationEmail(account, origin) {\n let message;\n if (origin) {\n const verifyUrl = `${origin}/auth/verify-email?token=${account.verificationToken}`;\n message = `<p> Please click the below link to verify your email address:</p>\n <p><a href=\"${verifyUrl}\">${verifyUrl}</a></p>\n `;\n } else {\n message = `<p>Please use the below token to verify your email address with the <code>/auth/verify-email</code> api route:</p>\n <p><code>${account.verificationToken}</code></p>`;\n }\n\n await sendEmail({\n to: account.email,\n subject: \"Sign-up verification API - Verify Email\",\n html: `<h4>Verify Email</h4>\n <p>Thanks for registering!</p>\n ${message}`,\n });\n}\n\nasync function sendAlreadyRegisteredEmail(email, origin) {\n let message;\n if (origin) {\n message = `<p>If you don't know your password please visit the <a href=\"${origin}/auth/forgot-password\">forgot password</a> page.</p>`;\n } else {\n message = `<p>If you don't know your password you can reset it via the <code>/auth/forgot-password</code> api route.</p>`;\n }\n\n await sendEmail({\n to: email,\n subject: \"Sign-up Verification API - Email Already Registered\",\n html: `<h4>Email Already Registered</h4>\n <p>Your email <strong>${email}</strong> is already registered.</p>\n ${message}`,\n });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/15/authservice_15139629ee8738726404e916e3a02258.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2318",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 22003,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 22000,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "login",
"ranges": [
{
"startOffset": 546,
"endOffset": 944,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "register",
"ranges": [
{
"startOffset": 946,
"endOffset": 1502,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "verifyEmail",
"ranges": [
{
"startOffset": 1504,
"endOffset": 1779,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1781,
"endOffset": 2062,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2064,
"endOffset": 2621,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAll",
"ranges": [
{
"startOffset": 2682,
"endOffset": 2793,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 2795,
"endOffset": 2907,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 2948,
"endOffset": 3015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccount",
"ranges": [
{
"startOffset": 3076,
"endOffset": 3198,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "insertUser",
"ranges": [
{
"startOffset": 3200,
"endOffset": 3791,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "hash",
"ranges": [
{
"startOffset": 3793,
"endOffset": 3868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "randomTokenString",
"ranges": [
{
"startOffset": 3870,
"endOffset": 3951,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 3953,
"endOffset": 4226,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendVerificationEmail",
"ranges": [
{
"startOffset": 4228,
"endOffset": 4965,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "sendAlreadyRegisteredEmail",
"ranges": [
{
"startOffset": 4967,
"endOffset": 5605,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n\n}\n\nModel.knex(db);\nmodule.exports = User;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVzZXIubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiVXNlciIsInRhYmxlTmFtZSIsInVzZXIiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLDRCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLFVBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBSG9COztBQU16Qk4sS0FBSyxDQUFDTyxJQUFOLENBQVdKLEVBQVg7QUFFQUssTUFBTSxDQUFDQyxPQUFQLEdBQWlCTCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vZGJcIik7XG5cbmNsYXNzIFVzZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLnVzZXI7XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBVc2VyO1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst db = require(\"../../db\");\n\nclass User extends Model {\n static get tableName() {\n return tableNames.user;\n }\n}\n\nModel.knex(db);\n\nmodule.exports = User;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/65/usermodel_65a16864dea2cc43f1cea59fb9ce1a95.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2319",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1454,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1451,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "User",
"ranges": [
{
"startOffset": 224,
"endOffset": 224,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 260,
"endOffset": 309,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhYmxlTmFtZXMuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsInVzZXIiLCJhZGRyZXNzIiwiY29tcGFueSIsImFjY291bnRzIiwiY2F0ZWdvcnkiLCJtZW51IiwiaXRlbSIsIm9yZGVyIiwib3JkZXJJdGVtIiwicGF5bWVudHMiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFBSSxFQUFFLE1BRE87QUFFYkMsRUFBQUEsT0FBTyxFQUFFLFNBRkk7QUFHYkMsRUFBQUEsT0FBTyxFQUFFLFNBSEk7QUFJYkMsRUFBQUEsUUFBUSxFQUFFLFVBSkc7QUFLYkMsRUFBQUEsUUFBUSxFQUFFLFVBTEc7QUFNYkMsRUFBQUEsSUFBSSxFQUFFLE1BTk87QUFPYkMsRUFBQUEsSUFBSSxFQUFFLE1BUE87QUFRYkMsRUFBQUEsS0FBSyxFQUFFLE9BUk07QUFTYkMsRUFBQUEsU0FBUyxFQUFFLFdBVEU7QUFVYkMsRUFBQUEsUUFBUSxFQUFFO0FBVkcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB1c2VyOiBcInVzZXJcIixcbiAgICBhZGRyZXNzOiBcImFkZHJlc3NcIixcbiAgICBjb21wYW55OiBcImNvbXBhbnlcIixcbiAgICBhY2NvdW50czogXCJhY2NvdW50c1wiLFxuICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgbWVudTogXCJtZW51XCIsXG4gICAgaXRlbTogXCJpdGVtXCIsXG4gICAgb3JkZXI6IFwib3JkZXJcIixcbiAgICBvcmRlckl0ZW06IFwib3JkZXJJdGVtXCIsXG4gICAgcGF5bWVudHM6IFwicGF5bWVudHNcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n user: \"user\",\n address: \"address\",\n company: \"company\",\n accounts: \"accounts\",\n category: \"category\",\n menu: \"menu\",\n item: \"item\",\n order: \"order\",\n orderItem: \"orderItem\",\n payments: \"payments\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/d1/tableNames_d158fb35bde4ba2feb47fa73fcd1c0db.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2532",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1435,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1432,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Knex = require(\"knex\");\n\nconst {\n Model\n} = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\n\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\nconst db = Knex(connectionConfig);\nModel.knex(db);\nmodule.exports = db;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRiLmpzIl0sIm5hbWVzIjpbIktuZXgiLCJyZXF1aXJlIiwiTW9kZWwiLCJrbmV4RmlsZSIsImVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29ubmVjdGlvbkNvbmZpZyIsImRiIiwia25leCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLE1BQUQsQ0FBcEI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQTtBQUFGLElBQVlELE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUVBLE1BQU1FLFFBQVEsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBeEI7O0FBQ0EsTUFBTUcsV0FBVyxHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFBWixJQUF3QixhQUE1QztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTCxRQUFRLENBQUNDLFdBQUQsQ0FBakM7QUFFQSxNQUFNSyxFQUFFLEdBQUdULElBQUksQ0FBQ1EsZ0JBQUQsQ0FBZjtBQUVBTixLQUFLLENBQUNRLElBQU4sQ0FBV0QsRUFBWDtBQUVBRSxNQUFNLENBQUNDLE9BQVAsR0FBaUJILEVBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS25leCA9IHJlcXVpcmUoXCJrbmV4XCIpO1xuY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcblxuY29uc3Qga25leEZpbGUgPSByZXF1aXJlKFwiLi4va25leGZpbGVcIik7XG5jb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WIHx8IFwiZGV2ZWxvcG1lbnRcIjtcbmNvbnN0IGNvbm5lY3Rpb25Db25maWcgPSBrbmV4RmlsZVtlbnZpcm9ubWVudF07XG5cbmNvbnN0IGRiID0gS25leChjb25uZWN0aW9uQ29uZmlnKTtcblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gZGI7XG4iXX0=",
"originalCode": "const Knex = require(\"knex\");\nconst { Model } = require(\"objection\");\n\nconst knexFile = require(\"../knexfile\");\nconst environment = process.env.NODE_ENV || \"development\";\nconst connectionConfig = knexFile[environment];\n\nconst db = Knex(connectionConfig);\n\nModel.knex(db);\n\nmodule.exports = db;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/06/db_061f2ffe7a9d03a98dba0f960ecba1d1.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2533",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1629,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1626,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n },\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10\n },\n migrations: {\n directory: __dirname + \"/db/migrations\"\n },\n seeds: {\n directory: __dirname + \"/db/seeds\"\n }\n }\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtuZXhmaWxlLmpzIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJjb25maWciLCJtb2R1bGUiLCJleHBvcnRzIiwidGVzdCIsImNsaWVudCIsImNvbm5lY3Rpb24iLCJkYXRhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJQT1NUR1JFU19EQl9URVNUIiwidXNlciIsIlBPU1RHUkVTX1VTRVIiLCJwYXNzd29yZCIsIlBPU1RHUkVTX1BBU1NXT1JEIiwibWlncmF0aW9ucyIsImRpcmVjdG9yeSIsIl9fZGlybmFtZSIsInNlZWRzIiwiZGV2ZWxvcG1lbnQiLCJQT1NUR1JFU19EQiIsInByb2R1Y3Rpb24iLCJEQVRBQkFTRV9VUkwiLCJwb29sIiwibWluIiwibWF4Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxPQUFPLENBQUMsUUFBRCxDQUFQLENBQWtCQyxNQUFsQjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLElBQUksRUFBRTtBQUNGQyxJQUFBQSxNQUFNLEVBQUUsSUFETjtBQUVGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxnQkFGZDtBQUdSQyxNQUFBQSxJQUFJLEVBQUVILE9BQU8sQ0FBQ0MsR0FBUixDQUFZRyxhQUhWO0FBSVJDLE1BQUFBLFFBQVEsRUFBRUwsT0FBTyxDQUFDQyxHQUFSLENBQVlLO0FBSmQsS0FGVjtBQVFGQyxJQUFBQSxVQUFVLEVBQUU7QUFDUkMsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEZixLQVJWO0FBWUZDLElBQUFBLEtBQUssRUFBRTtBQUNIRixNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURwQjtBQVpMLEdBRE87QUFrQmJFLEVBQUFBLFdBQVcsRUFBRTtBQUNUZCxJQUFBQSxNQUFNLEVBQUUsSUFEQztBQUVUQyxJQUFBQSxVQUFVLEVBQUU7QUFDUjtBQUNBQyxNQUFBQSxRQUFRLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZVyxXQUZkO0FBR1JULE1BQUFBLElBQUksRUFBRUgsT0FBTyxDQUFDQyxHQUFSLENBQVlHLGFBSFY7QUFJUkMsTUFBQUEsUUFBUSxFQUFFTCxPQUFPLENBQUNDLEdBQVIsQ0FBWUs7QUFKZCxLQUZIO0FBUVRDLElBQUFBLFVBQVUsRUFBRTtBQUNSQyxNQUFBQSxTQUFTLEVBQUVDLFNBQVMsR0FBRztBQURmLEtBUkg7QUFZVEMsSUFBQUEsS0FBSyxFQUFFO0FBQ0hGLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRHBCO0FBWkUsR0FsQkE7QUFtQ2JJLEVBQUFBLFVBQVUsRUFBRTtBQUNSaEIsSUFBQUEsTUFBTSxFQUFFLElBREE7QUFFUkMsSUFBQUEsVUFBVSxFQUFFRSxPQUFPLENBQUNDLEdBQVIsQ0FBWWEsWUFGaEI7QUFHUkMsSUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLE1BQUFBLEdBQUcsRUFBRSxDQURIO0FBRUZDLE1BQUFBLEdBQUcsRUFBRTtBQUZILEtBSEU7QUFPUlYsSUFBQUEsVUFBVSxFQUFFO0FBQ1JDLE1BQUFBLFNBQVMsRUFBRUMsU0FBUyxHQUFHO0FBRGYsS0FQSjtBQVdSQyxJQUFBQSxLQUFLLEVBQUU7QUFDSEYsTUFBQUEsU0FBUyxFQUFFQyxTQUFTLEdBQUc7QUFEcEI7QUFYQztBQW5DQyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFVwZGF0ZSB3aXRoIHlvdXIgY29uZmlnIHNldHRpbmdzLlxucmVxdWlyZShcImRvdGVudlwiKS5jb25maWcoKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgdGVzdDoge1xuICAgICAgICBjbGllbnQ6IFwicGdcIixcbiAgICAgICAgY29ubmVjdGlvbjoge1xuICAgICAgICAgICAgLy8gaG9zdDogXCIxMjcuMC4wLjFcIixcbiAgICAgICAgICAgIGRhdGFiYXNlOiBwcm9jZXNzLmVudi5QT1NUR1JFU19EQl9URVNULFxuICAgICAgICAgICAgdXNlcjogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfVVNFUixcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9jZXNzLmVudi5QT1NUR1JFU19QQVNTV09SRCxcbiAgICAgICAgfSxcbiAgICAgICAgbWlncmF0aW9uczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9taWdyYXRpb25zXCIsXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2VlZHM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvc2VlZHNcIixcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnQ6IHtcbiAgICAgICAgY2xpZW50OiBcInBnXCIsXG4gICAgICAgIGNvbm5lY3Rpb246IHtcbiAgICAgICAgICAgIC8vIGhvc3Q6IFwiMTI3LjAuMC4xXCIsXG4gICAgICAgICAgICBkYXRhYmFzZTogcHJvY2Vzcy5lbnYuUE9TVEdSRVNfREIsXG4gICAgICAgICAgICB1c2VyOiBwcm9jZXNzLmVudi5QT1NUR1JFU19VU0VSLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LlBPU1RHUkVTX1BBU1NXT1JELFxuICAgICAgICB9LFxuICAgICAgICBtaWdyYXRpb25zOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL21pZ3JhdGlvbnNcIixcbiAgICAgICAgfSxcblxuICAgICAgICBzZWVkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiBfX2Rpcm5hbWUgKyBcIi9kYi9zZWVkc1wiLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9kdWN0aW9uOiB7XG4gICAgICAgIGNsaWVudDogXCJwZ1wiLFxuICAgICAgICBjb25uZWN0aW9uOiBwcm9jZXNzLmVudi5EQVRBQkFTRV9VUkwsXG4gICAgICAgIHBvb2w6IHtcbiAgICAgICAgICAgIG1pbjogMixcbiAgICAgICAgICAgIG1heDogMTAsXG4gICAgICAgIH0sXG4gICAgICAgIG1pZ3JhdGlvbnM6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogX19kaXJuYW1lICsgXCIvZGIvbWlncmF0aW9uc1wiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNlZWRzOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IF9fZGlybmFtZSArIFwiL2RiL3NlZWRzXCIsXG4gICAgICAgIH0sXG4gICAgfSxcbn07XG4iXX0=",
"originalCode": "// Update with your config settings.\nrequire(\"dotenv\").config();\n\nmodule.exports = {\n test: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB_TEST,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n development: {\n client: \"pg\",\n connection: {\n // host: \"127.0.0.1\",\n database: process.env.POSTGRES_DB,\n user: process.env.POSTGRES_USER,\n password: process.env.POSTGRES_PASSWORD,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n\n production: {\n client: \"pg\",\n connection: process.env.DATABASE_URL,\n pool: {\n min: 2,\n max: 10,\n },\n migrations: {\n directory: __dirname + \"/db/migrations\",\n },\n\n seeds: {\n directory: __dirname + \"/db/seeds\",\n },\n },\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/e2/knexfile_e268b34e213dcf9ff4bbc9c1fff3199f.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2765",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4994,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4991,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(payload, process.env.JWT_SECRET, {\n expiresIn: \"3h\"\n }, (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n });\n });\n}\n\nmodule.exports = {\n sign\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImp3dC5qcyJdLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwic2lnbiIsInBheWxvYWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInByb2Nlc3MiLCJlbnYiLCJKV1RfU0VDUkVUIiwiZXhwaXJlc0luIiwiZXJyb3IiLCJ0b2tlbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBbkI7O0FBRUEsU0FBU0MsSUFBVCxDQUFjQyxPQUFkLEVBQXVCO0FBQ25CLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtBQUNwQ04sSUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQ0lDLE9BREosRUFFSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLFVBRmhCLEVBR0k7QUFDSUMsTUFBQUEsU0FBUyxFQUFFO0FBRGYsS0FISixFQU1JLENBQUNDLEtBQUQsRUFBUUMsS0FBUixLQUFrQjtBQUNkLFVBQUlELEtBQUosRUFBVyxPQUFPTCxNQUFNLENBQUNLLEtBQUQsQ0FBYjtBQUNYLGFBQU9OLE9BQU8sQ0FBQ08sS0FBRCxDQUFkO0FBQ0gsS0FUTDtBQVdILEdBWk0sQ0FBUDtBQWFIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlosRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoXCJqc29ud2VidG9rZW5cIik7XG5cbmZ1bmN0aW9uIHNpZ24ocGF5bG9hZCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGp3dC5zaWduKFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwaXJlc0luOiBcIjNoXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yLCB0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUodG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBzaWduLFxufTtcbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\n\nfunction sign(payload) {\n return new Promise((resolve, reject) => {\n jwt.sign(\n payload,\n process.env.JWT_SECRET,\n {\n expiresIn: \"3h\",\n },\n (error, token) => {\n if (error) return reject(error);\n return resolve(token);\n }\n );\n });\n}\n\nmodule.exports = {\n sign,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/a2/jwt_a2ecd03f3666d6bdf618e5bb010e6f13.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2817",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1961,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sign",
"ranges": [
{
"startOffset": 127,
"endOffset": 376,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const nodemailer = require(\"nodemailer\");\n\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({\n to,\n subject,\n html,\n from = config[\"emailFrom\"]\n}) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({\n from,\n to,\n subject,\n html\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVtYWlsLmpzIl0sIm5hbWVzIjpbIm5vZGVtYWlsZXIiLCJyZXF1aXJlIiwiY29uZmlnIiwibW9kdWxlIiwiZXhwb3J0cyIsInNlbmRFbWFpbCIsInRvIiwic3ViamVjdCIsImh0bWwiLCJmcm9tIiwidHJhbnNwb3J0ZXIiLCJjcmVhdGVUcmFuc3BvcnQiLCJzZW5kTWFpbCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsVUFBVSxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUExQjs7QUFDQSxNQUFNQyxNQUFNLEdBQUdELE9BQU8sQ0FBQyxnQkFBRCxDQUF0Qjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCQyxTQUFqQjs7QUFFQSxlQUFlQSxTQUFmLENBQXlCO0FBQUVDLEVBQUFBLEVBQUY7QUFBTUMsRUFBQUEsT0FBTjtBQUFlQyxFQUFBQSxJQUFmO0FBQXFCQyxFQUFBQSxJQUFJLEdBQUdQLE1BQU0sQ0FBQyxXQUFEO0FBQWxDLENBQXpCLEVBQTRFO0FBQ3hFLFFBQU1RLFdBQVcsR0FBR1YsVUFBVSxDQUFDVyxlQUFYLENBQTJCVCxNQUFNLENBQUMsYUFBRCxDQUFqQyxDQUFwQjtBQUNBLFFBQU1RLFdBQVcsQ0FBQ0UsUUFBWixDQUFxQjtBQUFFSCxJQUFBQSxJQUFGO0FBQVFILElBQUFBLEVBQVI7QUFBWUMsSUFBQUEsT0FBWjtBQUFxQkMsSUFBQUE7QUFBckIsR0FBckIsQ0FBTjtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgbm9kZW1haWxlciA9IHJlcXVpcmUoXCJub2RlbWFpbGVyXCIpO1xuY29uc3QgY29uZmlnID0gcmVxdWlyZShcIi4uL2NvbmZpZy5qc29uXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNlbmRFbWFpbDtcblxuYXN5bmMgZnVuY3Rpb24gc2VuZEVtYWlsKHsgdG8sIHN1YmplY3QsIGh0bWwsIGZyb20gPSBjb25maWdbXCJlbWFpbEZyb21cIl0gfSkge1xuICAgIGNvbnN0IHRyYW5zcG9ydGVyID0gbm9kZW1haWxlci5jcmVhdGVUcmFuc3BvcnQoY29uZmlnW1wic210cE9wdGlvbnNcIl0pO1xuICAgIGF3YWl0IHRyYW5zcG9ydGVyLnNlbmRNYWlsKHsgZnJvbSwgdG8sIHN1YmplY3QsIGh0bWwgfSk7XG59XG4iXX0=",
"originalCode": "const nodemailer = require(\"nodemailer\");\nconst config = require(\"../config.json\");\n\nmodule.exports = sendEmail;\n\nasync function sendEmail({ to, subject, html, from = config[\"emailFrom\"] }) {\n const transporter = nodemailer.createTransport(config[\"smtpOptions\"]);\n await transporter.sendMail({ from, to, subject, html });\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/email_4444491566e111edc26f59e95bae5b33.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2908",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1859,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1856,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "sendEmail",
"ranges": [
{
"startOffset": 204,
"endOffset": 441,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const jwt = require(\"jsonwebtoken\");\n\nconst User = require(\"../api/user/user.model\");\n\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n\n if (req.headers.authorization && req.headers.authorization.startsWith(\"Bearer \")) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\"\n });\n } // verify token and account\n\n\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n const user = await User.query().where({\n id: decodedToken.id\n }).first();\n\n if (!user || roles.length && !roles.includes(decodedToken.role)) {\n // account does not exist or role not authorized\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n } // authentication and authorization successful\n\n\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query().where({\n owner_id: req.user.id,\n id: req.params.company_id\n }).first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dGguanMiXSwibmFtZXMiOlsiand0IiwicmVxdWlyZSIsIlVzZXIiLCJDb21wYW55IiwibW9kdWxlIiwiZXhwb3J0cyIsImF1dGgiLCJpc093bmVyIiwicm9sZXMiLCJyZXEiLCJyZXMiLCJuZXh0IiwidG9rZW4iLCJoZWFkZXJzIiwiYXV0aG9yaXphdGlvbiIsInN0YXJ0c1dpdGgiLCJzcGxpdCIsInN0YXR1cyIsImpzb24iLCJtZXNzYWdlIiwiZGVjb2RlZFRva2VuIiwidmVyaWZ5IiwicHJvY2VzcyIsImVudiIsIkpXVF9TRUNSRVQiLCJ1c2VyIiwicXVlcnkiLCJ3aGVyZSIsImlkIiwiZmlyc3QiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInJvbGUiLCJlcnJvciIsImJvb2wiLCJvd25lcl9pZCIsInBhcmFtcyIsImNvbXBhbnlfaWQiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFELENBQW5COztBQUNBLE1BQU1DLElBQUksR0FBR0QsT0FBTyxDQUFDLHdCQUFELENBQXBCOztBQUNBLE1BQU1FLE9BQU8sR0FBR0YsT0FBTyxDQUFDLDhCQUFELENBQXZCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsSUFEYTtBQUViQyxFQUFBQTtBQUZhLENBQWpCOztBQUtBLFNBQVNELElBQVQsQ0FBY0UsS0FBSyxHQUFHLEVBQXRCLEVBQTBCO0FBQ3RCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUMzQkEsSUFBQUEsS0FBSyxHQUFHLENBQUNBLEtBQUQsQ0FBUjtBQUNIOztBQUVELFNBQU8sT0FBT0MsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJQyxLQUFKOztBQUNBLFFBQ0lILEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLElBQ0FMLEdBQUcsQ0FBQ0ksT0FBSixDQUFZQyxhQUFaLENBQTBCQyxVQUExQixDQUFxQyxTQUFyQyxDQUZKLEVBR0U7QUFDRUgsTUFBQUEsS0FBSyxHQUFHSCxHQUFHLENBQUNJLE9BQUosQ0FBWUMsYUFBWixDQUEwQkUsS0FBMUIsQ0FBZ0MsU0FBaEMsRUFBMkMsQ0FBM0MsQ0FBUjtBQUNILEtBTEQsTUFLTztBQUNILGFBQU9OLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQ3hCQyxRQUFBQSxPQUFPLEVBQUU7QUFEZSxPQUFyQixDQUFQO0FBR0gsS0FYNEIsQ0FhN0I7OztBQUNBLFFBQUk7QUFDQSxZQUFNQyxZQUFZLEdBQUdwQixHQUFHLENBQUNxQixNQUFKLENBQVdULEtBQVgsRUFBa0JVLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxVQUE5QixDQUFyQjtBQUVBLFlBQU1DLElBQUksR0FBRyxNQUFNdkIsSUFBSSxDQUFDd0IsS0FBTCxHQUNkQyxLQURjLENBQ1I7QUFBRUMsUUFBQUEsRUFBRSxFQUFFUixZQUFZLENBQUNRO0FBQW5CLE9BRFEsRUFFZEMsS0FGYyxFQUFuQjs7QUFJQSxVQUFJLENBQUNKLElBQUQsSUFBVWpCLEtBQUssQ0FBQ3NCLE1BQU4sSUFBZ0IsQ0FBQ3RCLEtBQUssQ0FBQ3VCLFFBQU4sQ0FBZVgsWUFBWSxDQUFDWSxJQUE1QixDQUEvQixFQUFtRTtBQUMvRDtBQUNBLGVBQU90QixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQjtBQUFFQyxVQUFBQSxPQUFPLEVBQUU7QUFBWCxTQUFyQixDQUFQO0FBQ0gsT0FWRCxDQVlBOzs7QUFDQVYsTUFBQUEsR0FBRyxDQUFDZ0IsSUFBSixHQUFXTCxZQUFYO0FBQ0FULE1BQUFBLElBQUk7QUFDUCxLQWZELENBZUUsT0FBT3NCLEtBQVAsRUFBYztBQUNadEIsTUFBQUEsSUFBSSxDQUFDc0IsS0FBRCxDQUFKO0FBQ0g7QUFDSixHQWhDRDtBQWlDSDs7QUFFRCxTQUFTMUIsT0FBVCxHQUFtQjtBQUNmLFNBQU8sT0FBT0UsR0FBUCxFQUFZQyxHQUFaLEVBQWlCQyxJQUFqQixLQUEwQjtBQUM3QixRQUFJO0FBQ0EsWUFBTXVCLElBQUksR0FBRyxNQUFNL0IsT0FBTyxDQUFDdUIsS0FBUixHQUNkQyxLQURjLENBQ1I7QUFDSFEsUUFBQUEsUUFBUSxFQUFFMUIsR0FBRyxDQUFDZ0IsSUFBSixDQUFTRyxFQURoQjtBQUVIQSxRQUFBQSxFQUFFLEVBQUVuQixHQUFHLENBQUMyQixNQUFKLENBQVdDO0FBRlosT0FEUSxFQUtkUixLQUxjLEVBQW5COztBQU9BLFVBQUksQ0FBQ0ssSUFBTCxFQUFXO0FBQ1BJLFFBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZTCxJQUFaO0FBQ0EsZUFBT3hCLEdBQUcsQ0FBQ08sTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXFCO0FBQUVDLFVBQUFBLE9BQU8sRUFBRTtBQUFYLFNBQXJCLENBQVA7QUFDSDs7QUFDRFIsTUFBQUEsSUFBSTtBQUNQLEtBYkQsQ0FhRSxPQUFPc0IsS0FBUCxFQUFjO0FBQ1p0QixNQUFBQSxJQUFJLENBQUNzQixLQUFELENBQUo7QUFDSDtBQUNKLEdBakJEO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgand0ID0gcmVxdWlyZShcImpzb253ZWJ0b2tlblwiKTtcbmNvbnN0IFVzZXIgPSByZXF1aXJlKFwiLi4vYXBpL3VzZXIvdXNlci5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vYXBpL2NvbXBhbnkvY29tcGFueS5tb2RlbFwiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXV0aCxcbiAgICBpc093bmVyLFxufTtcblxuZnVuY3Rpb24gYXV0aChyb2xlcyA9IFtdKSB7XG4gICAgaWYgKHR5cGVvZiByb2xlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByb2xlcyA9IFtyb2xlc107XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgICAgICBsZXQgdG9rZW47XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgICAgICAgIHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3RhcnRzV2l0aChcIkJlYXJlciBcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHJlcS5oZWFkZXJzLmF1dGhvcml6YXRpb24uc3BsaXQoXCJCZWFyZXIgXCIpWzFdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAzKS5qc29uKHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIlRva2VuIG5vdCBmb3VuZCwgYWNjZXNzIGRlbmllZFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB2ZXJpZnkgdG9rZW4gYW5kIGFjY291bnRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LkpXVF9TRUNSRVQpO1xuXG4gICAgICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgVXNlci5xdWVyeSgpXG4gICAgICAgICAgICAgICAgLndoZXJlKHsgaWQ6IGRlY29kZWRUb2tlbi5pZCB9KVxuICAgICAgICAgICAgICAgIC5maXJzdCgpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZXIgfHwgKHJvbGVzLmxlbmd0aCAmJiAhcm9sZXMuaW5jbHVkZXMoZGVjb2RlZFRva2VuLnJvbGUpKSkge1xuICAgICAgICAgICAgICAgIC8vIGFjY291bnQgZG9lcyBub3QgZXhpc3Qgb3Igcm9sZSBub3QgYXV0aG9yaXplZFxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc3RhdHVzKDQwMSkuanNvbih7IG1lc3NhZ2U6IFwiVW5hdXRob3JpemVkXCIgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uIHN1Y2Nlc3NmdWxcbiAgICAgICAgICAgIHJlcS51c2VyID0gZGVjb2RlZFRva2VuO1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgbmV4dChlcnJvcik7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc093bmVyKCkge1xuICAgIHJldHVybiBhc3luYyAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGJvb2wgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KClcbiAgICAgICAgICAgICAgICAud2hlcmUoe1xuICAgICAgICAgICAgICAgICAgICBvd25lcl9pZDogcmVxLnVzZXIuaWQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiByZXEucGFyYW1zLmNvbXBhbnlfaWQsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmlyc3QoKTtcblxuICAgICAgICAgICAgaWYgKCFib29sKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYm9vbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMoNDAxKS5qc29uKHsgbWVzc2FnZTogXCJVbmF1dGhvcml6ZWRcIiB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbiJdfQ==",
"originalCode": "const jwt = require(\"jsonwebtoken\");\nconst User = require(\"../api/user/user.model\");\nconst Company = require(\"../api/company/company.model\");\n\nmodule.exports = {\n auth,\n isOwner,\n};\n\nfunction auth(roles = []) {\n if (typeof roles === \"string\") {\n roles = [roles];\n }\n\n return async (req, res, next) => {\n let token;\n if (\n req.headers.authorization &&\n req.headers.authorization.startsWith(\"Bearer \")\n ) {\n token = req.headers.authorization.split(\"Bearer \")[1];\n } else {\n return res.status(403).json({\n message: \"Token not found, access denied\",\n });\n }\n\n // verify token and account\n try {\n const decodedToken = jwt.verify(token, process.env.JWT_SECRET);\n\n const user = await User.query()\n .where({ id: decodedToken.id })\n .first();\n\n if (!user || (roles.length && !roles.includes(decodedToken.role))) {\n // account does not exist or role not authorized\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n // authentication and authorization successful\n req.user = decodedToken;\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n\nfunction isOwner() {\n return async (req, res, next) => {\n try {\n const bool = await Company.query()\n .where({\n owner_id: req.user.id,\n id: req.params.company_id,\n })\n .first();\n\n if (!bool) {\n console.log(bool);\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n next();\n } catch (error) {\n next(error);\n }\n };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/auth_bef81972d508eee6f0010ea0d7e5ae1e.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2942",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7428,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7425,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "auth",
"ranges": [
{
"startOffset": 275,
"endOffset": 1253,
"count": 26
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 373,
"endOffset": 1250,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "isOwner",
"ranges": [
{
"startOffset": 1255,
"endOffset": 1662,
"count": 11
}
],
"isBlockCoverage": false
},
{
"functionName": "",
"ranges": [
{
"startOffset": 1285,
"endOffset": 1659,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../constants/tableNames\");\n\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n\n const Account = require(\"./accounts/accounts.model\");\n\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`\n }\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`\n }\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`\n }\n }\n };\n }\n\n}\n\nmodule.exports = Company;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsInNjaGVtYSIsIkNvbXBhbnkiLCJ0YWJsZU5hbWUiLCJjb21wYW55IiwianNvblNjaGVtYSIsInJlbGF0aW9uTWFwcGluZ3MiLCJVc2VyIiwiQWNjb3VudCIsIk1lbnUiLCJvd25lciIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsInVzZXIiLCJhY2NvdW50cyIsIkhhc01hbnlSZWxhdGlvbiIsIm1lbnVzIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFZQyxPQUFPLENBQUMsV0FBRCxDQUF6Qjs7QUFDQSxNQUFNQyxVQUFVLEdBQUdELE9BQU8sQ0FBQyw0QkFBRCxDQUExQjs7QUFDQSxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyx1QkFBRCxDQUF0Qjs7QUFFQSxNQUFNRyxPQUFOLFNBQXNCSixLQUF0QixDQUE0QjtBQUN4QixhQUFXSyxTQUFYLEdBQXVCO0FBQ25CLFdBQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7QUFDSDs7QUFFRCxhQUFXQyxVQUFYLEdBQXdCO0FBQ3BCLFdBQU9KLE1BQVA7QUFDSDs7QUFFRCxhQUFXSyxnQkFBWCxHQUE4QjtBQUMxQjtBQUNBLFVBQU1DLElBQUksR0FBR1IsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLFVBQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLDJCQUFELENBQXZCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsS0FBSyxFQUFFO0FBQ0hDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEYjtBQUVIQyxRQUFBQSxVQUFVLEVBQUVOLElBRlQ7QUFHSE8sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFZixVQUFVLENBQUNJLE9BQVEsV0FEMUI7QUFFRlksVUFBQUEsRUFBRSxFQUFHLEdBQUVoQixVQUFVLENBQUNpQixJQUFLO0FBRnJCO0FBSEgsT0FESjtBQVNIQyxNQUFBQSxRQUFRLEVBQUU7QUFDTlAsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURWO0FBRU5OLFFBQUFBLFVBQVUsRUFBRUwsT0FGTjtBQUdOTSxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ2tCLFFBQVM7QUFGekI7QUFIQSxPQVRQO0FBaUJIRSxNQUFBQSxLQUFLLEVBQUU7QUFDSFQsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNxQixlQURiO0FBRUhOLFFBQUFBLFVBQVUsRUFBRUosSUFGVDtBQUdISyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVmLFVBQVUsQ0FBQ0ksT0FBUSxLQUQxQjtBQUVGWSxVQUFBQSxFQUFFLEVBQUcsR0FBRWhCLFVBQVUsQ0FBQ3FCLElBQUs7QUFGckI7QUFISDtBQWpCSixLQUFQO0FBMEJIOztBQXpDdUI7O0FBNEM1QkMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCckIsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkuc2NoZW1hLmpzb25cIik7XG5cbmNsYXNzIENvbXBhbnkgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLmNvbXBhbnk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBVc2VyID0gcmVxdWlyZShcIi4uL3VzZXIvdXNlci5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgQWNjb3VudCA9IHJlcXVpcmUoXCIuL2FjY291bnRzL2FjY291bnRzLm1vZGVsXCIpO1xuICAgICAgICBjb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51Lm1vZGVsXCIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvd25lcjoge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBVc2VyLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5vd25lcl9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLnVzZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGFjY291bnRzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBBY2NvdW50LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmFjY291bnRzfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1lbnVzOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jb21wYW55fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmNvbXBhbnlfaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBDb21wYW55O1xuIl19",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../constants/tableNames\");\nconst schema = require(\"./company.schema.json\");\n\nclass Company extends Model {\n static get tableName() {\n return tableNames.company;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const User = require(\"../user/user.model\");\n const Account = require(\"./accounts/accounts.model\");\n const Menu = require(\"./menu/menu.model\");\n\n return {\n owner: {\n relation: Model.BelongsToOneRelation,\n modelClass: User,\n join: {\n from: `${tableNames.company}.owner_id`,\n to: `${tableNames.user}.id`,\n },\n },\n accounts: {\n relation: Model.HasManyRelation,\n modelClass: Account,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.accounts}.company_id`,\n },\n },\n menus: {\n relation: Model.HasManyRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.company}.id`,\n to: `${tableNames.menu}.company_id`,\n },\n },\n };\n }\n}\n\nmodule.exports = Company;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/companymodel_8b713279ce3af8b604431fcbf24964b4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2943",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 5514,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 5511,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Company",
"ranges": [
{
"startOffset": 241,
"endOffset": 241,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 280,
"endOffset": 332,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 343,
"endOffset": 384,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 395,
"endOffset": 1298,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\"\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvbGUuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsImFkbWluIiwib3duZXIiLCJjdXN0b21lciIsInN0YWZmIl0sIm1hcHBpbmdzIjoiQUFBQUEsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLEtBQUssRUFBRSxPQURNO0FBRWJDLEVBQUFBLEtBQUssRUFBRSxPQUZNO0FBR2JDLEVBQUFBLFFBQVEsRUFBRSxVQUhHO0FBSWJDLEVBQUFBLEtBQUssRUFBRTtBQUpNLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYWRtaW46IFwiYWRtaW5cIixcbiAgICBvd25lcjogXCJvd25lclwiLFxuICAgIGN1c3RvbWVyOiBcImN1c3RvbWVyXCIsXG4gICAgc3RhZmY6IFwic3RhZmZcIixcbn07XG4iXX0=",
"originalCode": "module.exports = {\n admin: \"admin\",\n owner: \"owner\",\n customer: \"customer\",\n staff: \"staff\",\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c3/role_c386996d0c7428ed82a7fa0a3ec37236.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2944",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 789,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 786,
"count": 1
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./company.validators\");\n\nconst companyService = require(\"./company.service\");\n\nconst {\n auth: Auth\n} = require(\"../../_middlewares/auth\");\n\nconst Role = require(\"../../utils/role\");\n\nconst {\n scopedItems\n} = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\n\nconst Menu = require(\"./menu/menu.routes\");\n\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/1/accounts\n\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService.create(req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService.getAllCompanies().then(companies => {\n res.json(scopedItems(req.user, companies));\n }).catch(next);\n}\n\nfunction getMyCompanies(req, res, next) {\n companyService.getMyCompanies(req.user.id).then(companies => companies ? res.json(companies) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService.getCompanyById(req.params.id).then(company => {\n if (company.owner_id !== req.user.id && req.user.role !== Role.admin) {\n return res.status(401).json({\n message: \"Unauthorized\"\n });\n }\n\n res.json(company);\n }).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService.updateCompany({\n id: req.params.id,\n owner_id: req.user.id\n }, req.body).then(company => res.json(company)).catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService._delete({\n id: parseInt(req.params.id),\n owner_id: req.user.id\n }).then(() => {\n res.json({\n id: parseInt(req.params.id)\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiY29tcGFueVNlcnZpY2UiLCJhdXRoIiwiQXV0aCIsIlJvbGUiLCJzY29wZWRJdGVtcyIsIkFjY291bnQiLCJNZW51IiwiT3JkZXIiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsInBhdGNoIiwidXBkYXRlIiwiZ2V0IiwiYWRtaW4iLCJnZXRBbGxDb21wYW5pZXMiLCJnZXRNeUNvbXBhbmllcyIsImdldENvbXBhbnlCeUlkIiwiZGVsZXRlIiwiX2RlbGV0ZUNvbXBhbnkiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJvd25lcl9pZCIsInVzZXIiLCJpZCIsInRoZW4iLCJjb21wYW55IiwianNvbiIsImNhdGNoIiwiY29tcGFuaWVzIiwic2VuZFN0YXR1cyIsInBhcmFtcyIsInJvbGUiLCJzdGF0dXMiLCJtZXNzYWdlIiwidXBkYXRlQ29tcGFueSIsIl9kZWxldGUiLCJwYXJzZUludCJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBRCxDQUF2Qjs7QUFDQSxNQUFNO0FBQUVDLEVBQUFBLFlBQUY7QUFBZ0JDLEVBQUFBO0FBQWhCLElBQWlDRixPQUFPLENBQUMsc0JBQUQsQ0FBOUM7O0FBQ0EsTUFBTUcsY0FBYyxHQUFHSCxPQUFPLENBQUMsbUJBQUQsQ0FBOUI7O0FBQ0EsTUFBTTtBQUFFSSxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJMLE9BQU8sQ0FBQyx5QkFBRCxDQUE5Qjs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxrQkFBRCxDQUFwQjs7QUFDQSxNQUFNO0FBQUVPLEVBQUFBO0FBQUYsSUFBa0JQLE9BQU8sQ0FBQyx5QkFBRCxDQUEvQjs7QUFF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QURMLENBQ2E7QUFBRVosSUFBQUEsRUFBRSxFQUFFYSxRQUFRLENBQUNuQixHQUFHLENBQUNhLE1BQUosQ0FBV1AsRUFBWixDQUFkO0FBQStCRixJQUFBQSxRQUFRLEVBQUVKLEdBQUcsQ0FBQ0ssSUFBSixDQUFTQztBQUFsRCxHQURiLEVBRUtDLElBRkwsQ0FFVSxNQUFNO0FBQ1JOLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVILE1BQUFBLEVBQUUsRUFBRWEsUUFBUSxDQUFDbkIsR0FBRyxDQUFDYSxNQUFKLENBQVdQLEVBQVo7QUFBZCxLQUFUO0FBQ0gsR0FKTCxFQUtLSSxLQUxMLENBS1dSLElBTFg7QUFNSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGV4cHJlc3MgPSByZXF1aXJlKFwiZXhwcmVzc1wiKTtcbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NvbXBhbnkudmFsaWRhdG9yc1wiKTtcbmNvbnN0IGNvbXBhbnlTZXJ2aWNlID0gcmVxdWlyZShcIi4vY29tcGFueS5zZXJ2aWNlXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCB7IHNjb3BlZEl0ZW1zIH0gPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGVybWlzc2lvbnNcIik7XG5cbmNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy9hY2NvdW50cy5yb3V0ZXNcIik7XG5jb25zdCBNZW51ID0gcmVxdWlyZShcIi4vbWVudS9tZW51LnJvdXRlc1wiKTtcbmNvbnN0IE9yZGVyID0gcmVxdWlyZShcIi4vb3JkZXIvb3JkZXIucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxuLy8gYXBpL3YxL2NvbXBhbnkvMS9hY2NvdW50c1xucm91dGVyLnVzZShcIi86Y29tcGFueV9pZC9hY2NvdW50c1wiLCBBY2NvdW50KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvbWVudVwiLCBNZW51KTtcbnJvdXRlci51c2UoXCIvOmNvbXBhbnlfaWQvb3JkZXJcIiwgT3JkZXIpO1xuXG5yb3V0ZXIucG9zdChcIi9cIiwgQXV0aChbUm9sZS5vd25lcl0pLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgdXBkYXRlU2NoZW1hLCB1cGRhdGUpO1xucm91dGVyLmdldChcIi9cIiwgQXV0aChbUm9sZS5hZG1pbl0pLCBnZXRBbGxDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi9taW5lXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgZ2V0TXlDb21wYW5pZXMpO1xucm91dGVyLmdldChcIi86aWRcIiwgQXV0aChbUm9sZS5hZG1pbiwgUm9sZS5vd25lcl0pLCBnZXRDb21wYW55QnlJZCk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLmFkbWluLCBSb2xlLm93bmVyXSksIF9kZWxldGVDb21wYW55KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIHJlcS5ib2R5Lm93bmVyX2lkID0gcmVxLnVzZXIuaWQ7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbmllcyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC5nZXRBbGxDb21wYW5pZXMoKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbihzY29wZWRJdGVtcyhyZXEudXNlciwgY29tcGFuaWVzKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbmZ1bmN0aW9uIGdldE15Q29tcGFuaWVzKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldE15Q29tcGFuaWVzKHJlcS51c2VyLmlkKVxuICAgICAgICAudGhlbigoY29tcGFuaWVzKSA9PlxuICAgICAgICAgICAgY29tcGFuaWVzID8gcmVzLmpzb24oY29tcGFuaWVzKSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5mdW5jdGlvbiBnZXRDb21wYW55QnlJZChyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG93bmVyIGNhbiBnZXQgaGlzIGNvbXBhbnkgYW5kIHRoZSBhZG1pbiBjYW4gZ2V0IGFueSBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLmdldENvbXBhbnlCeUlkKHJlcS5wYXJhbXMuaWQpXG4gICAgICAgIC50aGVuKChjb21wYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgY29tcGFueS5vd25lcl9pZCAhPT0gcmVxLnVzZXIuaWQgJiZcbiAgICAgICAgICAgICAgICByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXMuanNvbihjb21wYW55KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueVxuICAgIGNvbXBhbnlTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVDb21wYW55KHsgaWQ6IHJlcS5wYXJhbXMuaWQsIG93bmVyX2lkOiByZXEudXNlci5pZCB9LCByZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGNvbXBhbnkpID0+IHJlcy5qc29uKGNvbXBhbnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIF9kZWxldGVDb21wYW55KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55XG4gICAgY29tcGFueVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoeyBpZDogcGFyc2VJbnQocmVxLnBhcmFtcy5pZCksIG93bmVyX2lkOiByZXEudXNlci5pZCB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkOiBwYXJzZUludChyZXEucGFyYW1zLmlkKSB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./company.validators\");\nconst companyService = require(\"./company.service\");\nconst { auth: Auth } = require(\"../../_middlewares/auth\");\nconst Role = require(\"../../utils/role\");\nconst { scopedItems } = require(\"../../utils/permissions\");\n\nconst Account = require(\"./accounts/accounts.routes\");\nconst Menu = require(\"./menu/menu.routes\");\nconst Order = require(\"./order/order.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/1/accounts\nrouter.use(\"/:company_id/accounts\", Account);\nrouter.use(\"/:company_id/menu\", Menu);\nrouter.use(\"/:company_id/order\", Order);\n\nrouter.post(\"/\", Auth([Role.owner]), createSchema, create);\nrouter.patch(\"/:id\", Auth([Role.owner]), updateSchema, update);\nrouter.get(\"/\", Auth([Role.admin]), getAllCompanies);\nrouter.get(\"/mine\", Auth([Role.owner]), getMyCompanies);\nrouter.get(\"/:id\", Auth([Role.admin, Role.owner]), getCompanyById);\nrouter.delete(\"/:id\", Auth([Role.admin, Role.owner]), _deleteCompany);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.owner_id = req.user.id;\n companyService\n .create(req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction getAllCompanies(req, res, next) {\n companyService\n .getAllCompanies()\n .then((companies) => {\n res.json(scopedItems(req.user, companies));\n })\n .catch(next);\n}\nfunction getMyCompanies(req, res, next) {\n companyService\n .getMyCompanies(req.user.id)\n .then((companies) =>\n companies ? res.json(companies) : res.sendStatus(404)\n )\n .catch(next);\n}\nfunction getCompanyById(req, res, next) {\n // owner can get his company and the admin can get any company\n companyService\n .getCompanyById(req.params.id)\n .then((company) => {\n if (\n company.owner_id !== req.user.id &&\n req.user.role !== Role.admin\n ) {\n return res.status(401).json({ message: \"Unauthorized\" });\n }\n\n res.json(company);\n })\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company\n companyService\n .updateCompany({ id: req.params.id, owner_id: req.user.id }, req.body)\n .then((company) => res.json(company))\n .catch(next);\n}\n\nfunction _deleteCompany(req, res, next) {\n // only owner delete can delete their company\n companyService\n ._delete({ id: parseInt(req.params.id), owner_id: req.user.id })\n .then(() => {\n res.json({ id: parseInt(req.params.id) });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/2a/companyroutes_2accae81b914ebc49b8ad824faf130cd.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2945",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 11663,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 11660,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1186,
"endOffset": 1338,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1340,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1681,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1683,
"endOffset": 2058,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 2060,
"endOffset": 2281,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCompany",
"ranges": [
{
"startOffset": 2283,
"endOffset": 2553,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkudmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvbiIsImxvZ29fdXJsIiwid2Vic2l0ZV91cmwiLCJlbWFpbCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiLCJvd25lciIsIm51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyxvQ0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsUUFBUSxFQUFFZCxHQUFHLENBQUNXLE1BQUosRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosRUFKUztBQUt0QkssSUFBQUEsS0FBSyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFLLEtBQWIsR0FBcUJKLFFBQXJCO0FBTGUsR0FBWCxDQUFmO0FBT0FWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQ7O0FBV0FMLE9BQU8sQ0FBQ2MsWUFBUixHQUF1QixDQUFDWixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNVyxXQUFXLEdBQUc7QUFDaEJSLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQk4sSUFBQUEsV0FBVyxFQUFFYixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQixDQUZHO0FBR2hCSCxJQUFBQSxLQUFLLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYUssS0FBYixHQUFxQkcsS0FBckIsQ0FBMkIsRUFBM0IsQ0FIUztBQUloQkMsSUFBQUEsS0FBSyxFQUFFcEIsR0FBRyxDQUFDcUIsTUFBSixHQUFhRixLQUFiLENBQW1CLEVBQW5CLENBSlM7QUFLaEJMLElBQUFBLFFBQVEsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFRLEtBQWIsQ0FBbUIsRUFBbkIsQ0FMTTtBQU1oQkosSUFBQUEsV0FBVyxFQUFFZixHQUFHLENBQUNXLE1BQUosR0FBYVEsS0FBYixDQUFtQixFQUFuQjtBQU5HLEdBQXBCO0FBU0EsUUFBTVgsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV1MsV0FBWCxDQUFmO0FBRUFoQixFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQWJEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBsb2dvX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICB3ZWJzaXRlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBlbWFpbDogSm9pLnN0cmluZygpLmVtYWlsKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIG93bmVyOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIGxvZ29fdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHdlYnNpdGVfdXJsOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n logo_url: Joi.string(),\n website_url: Joi.string(),\n email: Joi.string().email().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n email: Joi.string().email().empty(\"\"),\n owner: Joi.number().empty(\"\"),\n logo_url: Joi.string().empty(\"\"),\n website_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3c/companyvalidators_3ce01f397e22205413767a4933ebdfd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2946",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4153,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4150,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 213,
"endOffset": 489,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 515,
"endOffset": 878,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Company = require(\"../company/company.model\");\n\nconst error = require(\"../../utils/error\");\n\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({\n name: params.name\n })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams\n });\n\n if (!company) {\n error(\"Unauthorized\");\n } // validate if name was changed\n\n\n if (params.name && company.name !== params.name && (await getCompany({\n name: params.name\n }))) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(queryParams.id, { ...params\n });\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({\n id\n });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query().delete().where({ ...queryParams\n });\n }\n\n return error(\"Forbidden\");\n} // async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getCompany(param) {\n const company = await Company.query().where({ ...param\n }).first();\n return company;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBhbnkuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJDb21wYW55IiwicmVxdWlyZSIsImVycm9yIiwiY3JlYXRlRXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlIiwidXBkYXRlQ29tcGFueSIsImdldEFsbENvbXBhbmllcyIsImdldE15Q29tcGFuaWVzIiwiZ2V0Q29tcGFueUJ5SWQiLCJfZGVsZXRlIiwicGFyYW1zIiwiZ2V0Q29tcGFueSIsIm5hbWUiLCJjb21wYW55IiwicXVlcnkiLCJpbnNlcnQiLCJxdWVyeVBhcmFtcyIsInVwZGF0ZWRDb21wYW55IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJpZCIsImNvbXBhbmllcyIsIm93bmVySWQiLCJ3aGVyZSIsIm93bmVyX2lkIiwidG9iZURlbGV0ZWQiLCJkZWxldGUiLCJwYXJhbSIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQywwQkFBRCxDQUF2Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyxtQkFBRCxDQUFyQjs7QUFDQSxNQUFNRSxXQUFXLEdBQUdGLE9BQU8sQ0FBQyxhQUFELENBQTNCOztBQUVBRyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsTUFEYTtBQUViQyxFQUFBQSxhQUZhO0FBR2JDLEVBQUFBLGVBSGE7QUFJYkMsRUFBQUEsY0FKYTtBQUtiQyxFQUFBQSxjQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsTUFBZixDQUFzQk0sTUFBdEIsRUFBOEI7QUFDMUI7QUFDQSxNQUFJLE1BQU1DLFVBQVUsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0U7QUFBZixHQUFELENBQXBCLEVBQTZDO0FBQ3pDWixJQUFBQSxLQUFLLENBQUMsV0FBV1UsTUFBTSxDQUFDRSxJQUFsQixHQUF5Qix5QkFBMUIsQ0FBTDtBQUNIOztBQUVELFFBQU1DLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQWdCQyxNQUFoQixDQUF1QkwsTUFBdkIsQ0FBdEI7QUFDQSxTQUFPRyxPQUFQO0FBQ0g7O0FBRUQsZUFBZVIsYUFBZixDQUE2QlcsV0FBN0IsRUFBMENOLE1BQTFDLEVBQWtEO0FBQzlDLFFBQU1HLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUMsRUFBRSxHQUFHSztBQUFMLEdBQUQsQ0FBaEM7O0FBRUEsTUFBSSxDQUFDSCxPQUFMLEVBQWM7QUFDVmIsSUFBQUEsS0FBSyxDQUFDLGNBQUQsQ0FBTDtBQUNILEdBTDZDLENBTzlDOzs7QUFDQSxNQUNJVSxNQUFNLENBQUNFLElBQVAsSUFDQUMsT0FBTyxDQUFDRCxJQUFSLEtBQWlCRixNQUFNLENBQUNFLElBRHhCLEtBRUMsTUFBTUQsVUFBVSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRUYsTUFBTSxDQUFDRTtBQUFmLEdBQUQsQ0FGakIsQ0FESixFQUlFO0FBQ0VaLElBQUFBLEtBQUssQ0FBRSxRQUFPVSxNQUFNLENBQUNFLElBQUssbUJBQXJCLENBQUw7QUFDSDs7QUFFRCxRQUFNSyxjQUFjLEdBQUcsTUFBTW5CLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JJLGlCQUFoQixDQUN6QkYsV0FBVyxDQUFDRyxFQURhLEVBRXpCLEVBQ0ksR0FBR1Q7QUFEUCxHQUZ5QixDQUE3QjtBQU9BLFNBQU9PLGNBQVA7QUFDSDs7QUFFRCxlQUFlWCxlQUFmLEdBQWlDO0FBQzdCLFFBQU1jLFNBQVMsR0FBRyxNQUFNdEIsT0FBTyxDQUFDZ0IsS0FBUixFQUF4QjtBQUNBLFNBQU9NLFNBQVA7QUFDSDs7QUFFRCxlQUFlYixjQUFmLENBQThCYyxPQUE5QixFQUF1QztBQUNuQyxRQUFNRCxTQUFTLEdBQUcsTUFBTXRCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FBZ0JRLEtBQWhCLENBQXNCO0FBQzFDQyxJQUFBQSxRQUFRLEVBQUVGO0FBRGdDLEdBQXRCLENBQXhCO0FBR0EsU0FBT0QsU0FBUDtBQUNIOztBQUVELGVBQWVaLGNBQWYsQ0FBOEJXLEVBQTlCLEVBQWtDO0FBQzlCLFFBQU1OLE9BQU8sR0FBRyxNQUFNRixVQUFVLENBQUM7QUFBRVEsSUFBQUE7QUFBRixHQUFELENBQWhDO0FBQ0EsU0FBT04sT0FBUDtBQUNIOztBQUVELGVBQWVKLE9BQWYsQ0FBdUJPLFdBQXZCLEVBQW9DO0FBQ2hDLFFBQU1RLFdBQVcsR0FBRyxNQUFNYixVQUFVLENBQUNLLFdBQUQsQ0FBcEM7O0FBRUEsTUFBSVEsV0FBSixFQUFpQjtBQUNiLFdBQU8sTUFBTTFCLE9BQU8sQ0FBQ2dCLEtBQVIsR0FDUlcsTUFEUSxHQUVSSCxLQUZRLENBRUYsRUFBRSxHQUFHTjtBQUFMLEtBRkUsQ0FBYjtBQUdIOztBQUVELFNBQU9oQixLQUFLLENBQUMsV0FBRCxDQUFaO0FBQ0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVXLFVBQWYsQ0FBMEJlLEtBQTFCLEVBQWlDO0FBQzdCLFFBQU1iLE9BQU8sR0FBRyxNQUFNZixPQUFPLENBQUNnQixLQUFSLEdBQ2pCUSxLQURpQixDQUNYLEVBQUUsR0FBR0k7QUFBTCxHQURXLEVBRWpCQyxLQUZpQixFQUF0QjtBQUdBLFNBQU9kLE9BQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS9jb21wYW55Lm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5jb25zdCBjcmVhdGVFcnJvciA9IHJlcXVpcmUoXCJodHRwLWVycm9yc1wiKTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlLFxuICAgIHVwZGF0ZUNvbXBhbnksXG4gICAgZ2V0QWxsQ29tcGFuaWVzLFxuICAgIGdldE15Q29tcGFuaWVzLFxuICAgIGdldENvbXBhbnlCeUlkLFxuICAgIF9kZWxldGUsXG59O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGUocGFyYW1zKSB7XG4gICAgLy8gdmFsaWRhdGUgaWYgY29tcGFueSBuYW1lIGV4aXN0c1xuICAgIGlmIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpIHtcbiAgICAgICAgZXJyb3IoJ05hbWUgXCInICsgcGFyYW1zLm5hbWUgKyAnXCIgaXMgYWxyZWFkeSByZWdpc3RlcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ29tcGFueShxdWVyeVBhcmFtcywgcGFyYW1zKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyAuLi5xdWVyeVBhcmFtcyB9KTtcblxuICAgIGlmICghY29tcGFueSkge1xuICAgICAgICBlcnJvcihcIlVuYXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSBpZiBuYW1lIHdhcyBjaGFuZ2VkXG4gICAgaWYgKFxuICAgICAgICBwYXJhbXMubmFtZSAmJlxuICAgICAgICBjb21wYW55Lm5hbWUgIT09IHBhcmFtcy5uYW1lICYmXG4gICAgICAgIChhd2FpdCBnZXRDb21wYW55KHsgbmFtZTogcGFyYW1zLm5hbWUgfSkpXG4gICAgKSB7XG4gICAgICAgIGVycm9yKGBOYW1lICR7cGFyYW1zLm5hbWV9IGlzIGFscmVhZHkgdGFrZW5gKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVkQ29tcGFueSA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChcbiAgICAgICAgcXVlcnlQYXJhbXMuaWQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlZENvbXBhbnk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbmllcygpIHtcbiAgICBjb25zdCBjb21wYW5pZXMgPSBhd2FpdCBDb21wYW55LnF1ZXJ5KCk7XG4gICAgcmV0dXJuIGNvbXBhbmllcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TXlDb21wYW5pZXMob3duZXJJZCkge1xuICAgIGNvbnN0IGNvbXBhbmllcyA9IGF3YWl0IENvbXBhbnkucXVlcnkoKS53aGVyZSh7XG4gICAgICAgIG93bmVyX2lkOiBvd25lcklkLFxuICAgIH0pO1xuICAgIHJldHVybiBjb21wYW5pZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnlCeUlkKGlkKSB7XG4gICAgY29uc3QgY29tcGFueSA9IGF3YWl0IGdldENvbXBhbnkoeyBpZCB9KTtcbiAgICByZXR1cm4gY29tcGFueTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHRvYmVEZWxldGVkID0gYXdhaXQgZ2V0Q29tcGFueShxdWVyeVBhcmFtcyk7XG5cbiAgICBpZiAodG9iZURlbGV0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IENvbXBhbnkucXVlcnkoKVxuICAgICAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3IoXCJGb3JiaWRkZW5cIik7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBDb21wYW55LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENvbXBhbnkocGFyYW0pIHtcbiAgICBjb25zdCBjb21wYW55ID0gYXdhaXQgQ29tcGFueS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC5maXJzdCgpO1xuICAgIHJldHVybiBjb21wYW55O1xufVxuIl19",
"originalCode": "const Company = require(\"../company/company.model\");\nconst error = require(\"../../utils/error\");\nconst createError = require(\"http-errors\");\n\nmodule.exports = {\n create,\n updateCompany,\n getAllCompanies,\n getMyCompanies,\n getCompanyById,\n _delete,\n};\n\nasync function create(params) {\n // validate if company name exists\n if (await getCompany({ name: params.name })) {\n error('Name \"' + params.name + '\" is already registered');\n }\n\n const company = await Company.query().insert(params);\n return company;\n}\n\nasync function updateCompany(queryParams, params) {\n const company = await getCompany({ ...queryParams });\n\n if (!company) {\n error(\"Unauthorized\");\n }\n\n // validate if name was changed\n if (\n params.name &&\n company.name !== params.name &&\n (await getCompany({ name: params.name }))\n ) {\n error(`Name ${params.name} is already taken`);\n }\n\n const updatedCompany = await Company.query().patchAndFetchById(\n queryParams.id,\n {\n ...params,\n }\n );\n\n return updatedCompany;\n}\n\nasync function getAllCompanies() {\n const companies = await Company.query();\n return companies;\n}\n\nasync function getMyCompanies(ownerId) {\n const companies = await Company.query().where({\n owner_id: ownerId,\n });\n return companies;\n}\n\nasync function getCompanyById(id) {\n const company = await getCompany({ id });\n return company;\n}\n\nasync function _delete(queryParams) {\n const tobeDeleted = await getCompany(queryParams);\n\n if (tobeDeleted) {\n return await Company.query()\n .delete()\n .where({ ...queryParams });\n }\n\n return error(\"Forbidden\");\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await Company.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getCompany(param) {\n const company = await Company.query()\n .where({ ...param })\n .first();\n return company;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/10/companyservice_103976749abb46712c9f5147304425bb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2947",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7967,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7964,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 348,
"endOffset": 615,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCompany",
"ranges": [
{
"startOffset": 617,
"endOffset": 1096,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanies",
"ranges": [
{
"startOffset": 1098,
"endOffset": 1197,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMyCompanies",
"ranges": [
{
"startOffset": 1199,
"endOffset": 1339,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyById",
"ranges": [
{
"startOffset": 1341,
"endOffset": 1446,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1448,
"endOffset": 1669,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompany",
"ranges": [
{
"startOffset": 1808,
"endOffset": 1933,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "module.exports = message => {\n const error = new Error(message);\n throw error;\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImVycm9yLmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFrQkMsT0FBRCxJQUFhO0FBQzFCLFFBQU1DLEtBQUssR0FBRyxJQUFJQyxLQUFKLENBQVVGLE9BQVYsQ0FBZDtBQUNBLFFBQU1DLEtBQU47QUFDSCxDQUhEIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAobWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIHRocm93IGVycm9yO1xufTtcbiJdfQ==",
"originalCode": "module.exports = (message) => {\n const error = new Error(message);\n throw error;\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fa/error_fa67f28dedb39797d87045fcac49c533.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2948",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 690,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 687,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.module.exports",
"ranges": [
{
"startOffset": 106,
"endOffset": 171,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter(item => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBlcm1pc3Npb25zLmpzIl0sIm5hbWVzIjpbInJvbGUiLCJyZXF1aXJlIiwic2NvcGVkSXRlbXMiLCJ1c2VyIiwiaXRlbXMiLCJhZG1pbiIsImZpbHRlciIsIml0ZW0iLCJvd25lcl9pZCIsImlkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsSUFBSSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUFwQjs7QUFFQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQkMsS0FBM0IsRUFBa0M7QUFDOUIsTUFBSUQsSUFBSSxDQUFDSCxJQUFMLElBQWFBLElBQUksQ0FBQ0ssS0FBdEIsRUFBNkIsT0FBT0QsS0FBUDtBQUM3QixTQUFPQSxLQUFLLENBQUNFLE1BQU4sQ0FBY0MsSUFBRCxJQUFVQSxJQUFJLENBQUNDLFFBQUwsSUFBaUJMLElBQUksQ0FBQ00sRUFBN0MsQ0FBUDtBQUNIOztBQUVEQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYlQsRUFBQUE7QUFEYSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJvbGUgPSByZXF1aXJlKFwiLi9yb2xlXCIpO1xuXG5mdW5jdGlvbiBzY29wZWRJdGVtcyh1c2VyLCBpdGVtcykge1xuICAgIGlmICh1c2VyLnJvbGUgPT0gcm9sZS5hZG1pbikgcmV0dXJuIGl0ZW1zO1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ub3duZXJfaWQgPT0gdXNlci5pZCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNjb3BlZEl0ZW1zLFxufTtcbiJdfQ==",
"originalCode": "const role = require(\"./role\");\n\nfunction scopedItems(user, items) {\n if (user.role == role.admin) return items;\n return items.filter((item) => item.owner_id == user.id);\n}\n\nmodule.exports = {\n scopedItems,\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/permissions_089e905c4105820f9841c9d528f11f86.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2951",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1344,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1341,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "scopedItems",
"ranges": [
{
"startOffset": 122,
"endOffset": 261,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Account = require(\"./accounts.model\");\n\nconst Company = require(\"../company.model\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n const accounts = await Account.query().where({\n company_id: req.params.company_id\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJBY2NvdW50IiwicmVxdWlyZSIsIkNvbXBhbnkiLCJSb2xlIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJnZXQiLCJhZG1pbiIsIm93bmVyIiwiZ2V0QWNjb3VudHMiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImFjY291bnRzIiwicXVlcnkiLCJ3aGVyZSIsImNvbXBhbnlfaWQiLCJwYXJhbXMiLCJzdGF0dXMiLCJqc29uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1DLE9BQU8sR0FBR0QsT0FBTyxDQUFDLGtCQUFELENBQXZCOztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLHFCQUFELENBQXBCOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFFQSxNQUFNTSxNQUFNLEdBQUdOLE9BQU8sQ0FBQyxTQUFELENBQVAsQ0FBbUJPLE1BQW5CLENBQTBCO0FBQ3JDQyxFQUFBQSxXQUFXLEVBQUU7QUFEd0IsQ0FBMUIsQ0FBZjs7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQkwsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ1EsS0FBTixFQUFhUixJQUFJLENBQUNTLEtBQWxCLENBQUQsQ0FBcEIsRUFBZ0ROLE9BQU8sRUFBdkQsRUFBMkRPLFdBQTNEO0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQlIsTUFBakI7O0FBRUEsZUFBZU0sV0FBZixDQUEyQkcsR0FBM0IsRUFBZ0NDLEdBQWhDLEVBQXFDQyxJQUFyQyxFQUEyQztBQUN2QyxNQUFJO0FBQ0E7QUFDQTtBQUNBO0FBRUEsVUFBTUMsUUFBUSxHQUFHLE1BQU1uQixPQUFPLENBQUNvQixLQUFSLEdBQWdCQyxLQUFoQixDQUFzQjtBQUN6Q0MsTUFBQUEsVUFBVSxFQUFFTixHQUFHLENBQUNPLE1BQUosQ0FBV0Q7QUFEa0IsS0FBdEIsQ0FBdkI7O0FBSUEsUUFBSSxDQUFDSCxRQUFMLEVBQWU7QUFDWCxhQUFPRixHQUFHLENBQUNPLE1BQUosQ0FBVyxHQUFYLENBQVA7QUFDSDs7QUFFRFAsSUFBQUEsR0FBRyxDQUFDUSxJQUFKLENBQVNOLFFBQVQ7QUFDSCxHQWRELENBY0UsT0FBT08sS0FBUCxFQUFjO0FBQ1pSLElBQUFBLElBQUksQ0FBQ1EsS0FBRCxDQUFKO0FBQ0g7QUFDSiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEFjY291bnQgPSByZXF1aXJlKFwiLi9hY2NvdW50cy5tb2RlbFwiKTtcbmNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IHsgYXV0aDogQXV0aCwgaXNPd25lciB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy9hdXRoXCIpO1xuXG5jb25zdCByb3V0ZXIgPSByZXF1aXJlKFwiZXhwcmVzc1wiKS5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5nZXQoXCIvXCIsIEF1dGgoW1JvbGUuYWRtaW4sIFJvbGUub3duZXJdKSwgaXNPd25lcigpLCBnZXRBY2NvdW50cyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRBY2NvdW50cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIHRyeSB7XG4gICAgICAgIC8vIGlmICghY29tcGFueSAmJiByZXEudXNlci5yb2xlICE9PSBSb2xlLmFkbWluKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDEpLmpzb24oeyBtZXNzYWdlOiBcIlVuYXV0aG9yaXplZFwiIH0pO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBBY2NvdW50LnF1ZXJ5KCkud2hlcmUoe1xuICAgICAgICAgICAgY29tcGFueV9pZDogcmVxLnBhcmFtcy5jb21wYW55X2lkLFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWFjY291bnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyg0MDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLmpzb24oYWNjb3VudHMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIG5leHQoZXJyb3IpO1xuICAgIH1cbn1cbiJdfQ==",
"originalCode": "const Account = require(\"./accounts.model\");\nconst Company = require(\"../company.model\");\nconst Role = require(\"../../../utils/role\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\n\nconst router = require(\"express\").Router({\n mergeParams: true,\n});\n\nrouter.get(\"/\", Auth([Role.admin, Role.owner]), isOwner(), getAccounts);\n\nmodule.exports = router;\n\nasync function getAccounts(req, res, next) {\n try {\n // if (!company && req.user.role !== Role.admin) {\n // return res.status(401).json({ message: \"Unauthorized\" });\n // }\n\n const accounts = await Account.query().where({\n company_id: req.params.company_id,\n });\n\n if (!accounts) {\n return res.status(404);\n }\n\n res.json(accounts);\n } catch (error) {\n next(error);\n }\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/f5/accountsroutes_f54e96c4db6e4acb21a322f351ad9a58.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2952",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3778,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3775,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "getAccounts",
"ranges": [
{
"startOffset": 470,
"endOffset": 880,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n}\n\nmodule.exports = Account;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFjY291bnRzLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJzY2hlbWEiLCJBY2NvdW50IiwidGFibGVOYW1lIiwiYWNjb3VudHMiLCJqc29uU2NoZW1hIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLHdCQUFELENBQXRCOztBQUVBLE1BQU1HLE9BQU4sU0FBc0JKLEtBQXRCLENBQTRCO0FBQ3hCLGFBQVdLLFNBQVgsR0FBdUI7QUFDbkIsV0FBT0gsVUFBVSxDQUFDSSxRQUFsQjtBQUNIOztBQUVELGFBQVdDLFVBQVgsR0FBd0I7QUFDcEIsV0FBT0osTUFBUDtBQUNIOztBQVB1Qjs7QUFVNUJLLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQkwsT0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgdGFibGVOYW1lcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcbmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoXCIuL2FjY291bnRzLnNjaGVtYS5qc29uXCIpO1xuXG5jbGFzcyBBY2NvdW50IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5hY2NvdW50cztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IEFjY291bnQ7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst schema = require(\"./accounts.schema.json\");\n\nclass Account extends Model {\n static get tableName() {\n return tableNames.accounts;\n }\n\n static get jsonSchema() {\n return schema;\n }\n}\n\nmodule.exports = Account;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/01/accountsmodel_01a1ad309c7db6ca01e6d4ebe4774684.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2953",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 1669,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 1666,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Account",
"ranges": [
{
"startOffset": 245,
"endOffset": 245,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 284,
"endOffset": 337,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 348,
"endOffset": 389,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./menu.validator\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/company_id/menu/:menu_id/category\n\nrouter.use(\"/:menu_id/category\", Category);\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService.createMenu(req.body).then(menu => res.json(menu)).catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n menuService.getAllCompanyMenus({\n company_id\n }).then(menus => {\n return menus ? menus.length == 1 ? res.json(menus[0]) : res.json(menus) : res.sendStatus(404);\n }).catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n menuService.getMenuById(id).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService.updateMenu(req.params.id, req.body).then(menu => menu ? res.json(menu) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n\n menuService._delete({\n id,\n company_id\n }).then(() => {\n res.json({\n id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIkNhdGVnb3J5IiwibWVudVNlcnZpY2UiLCJtZW51Iiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsInBhdGNoIiwidXBkYXRlIiwiZGVsZXRlIiwiX2RlbGV0ZU1lbnUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxIiwicmVzIiwibmV4dCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVNZW51IiwidGhlbiIsImpzb24iLCJjYXRjaCIsIm1lbnVzIiwibGVuZ3RoIiwic2VuZFN0YXR1cyIsImlkIiwidXBkYXRlTWVudSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLGtCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyw0QkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyxxQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxRQUFRLEdBQUdQLE9BQU8sQ0FBQyw0QkFBRCxDQUF4Qjs7QUFFQSxNQUFNUSxXQUFXLEdBQUdSLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFDQSxNQUFNO0FBQUVTLEVBQUFBO0FBQUYsSUFBV1QsT0FBTyxDQUFDLCtCQUFELENBQXhCOztBQUVBLE1BQU1VLE1B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LENBQVdGLFVBQVosQ0FBOUI7QUFDQXRCLEVBQUFBLFdBQVcsQ0FDTmlDLFVBREwsQ0FDZ0JmLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUQzQixFQUMrQmQsR0FBRyxDQUFDRyxJQURuQyxFQUVLSyxJQUZMLENBRVd6QixJQUFELElBQVdBLElBQUksR0FBR2tCLEdBQUcsQ0FBQ1EsSUFBSixDQUFTMUIsSUFBVCxDQUFILEdBQW9Ca0IsR0FBRyxDQUFDWSxVQUFKLENBQWUsR0FBZixDQUY3QyxFQUdLSCxLQUhMLENBR1dSLElBSFg7QUFJSDs7QUFFRCxTQUFTTCxXQUFULENBQXFCRyxHQUFyQixFQUEwQkMsR0FBMUIsRUFBK0JDLElBQS9CLEVBQXFDO0FBQ2pDO0FBQ0EsUUFBTVksRUFBRSxHQUFHVCxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXUSxFQUFaLENBQW5CO0FBQ0EsUUFBTVYsVUFBVSxHQUFHQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixVQUFaLENBQTNCOztBQUNBdEIsRUFBQUEsV0FBVyxDQUNOa0MsT0FETCxDQUNhO0FBQ0xGLElBQUFBLEVBREs7QUFFTFYsSUFBQUE7QUFGSyxHQURiLEVBS0tJLElBTEwsQ0FLVSxNQUFNO0FBQ1JQLElBQUFBLEdBQUcsQ0FBQ1EsSUFBSixDQUFTO0FBQUVLLE1BQUFBO0FBQUYsS0FBVDtBQUNILEdBUEwsRUFRS0osS0FSTCxDQVFXUixJQVJYO0FBU0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL21lbnUudmFsaWRhdG9yXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5L2NhdGVnb3J5LnJvdXRlc1wiKTtcblxuY29uc3QgbWVudVNlcnZpY2UgPSByZXF1aXJlKFwiLi9tZW51LnNlcnZpY2VcIik7XG5jb25zdCB7IG1lbnUgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jb25zdGFudHMvdGFibGVOYW1lc1wiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbi8vIGFwaS92MS9jb21wYW55L2NvbXBhbnlfaWQvbWVudS86bWVudV9pZC9jYXRlZ29yeVxucm91dGVyLnVzZShcIi86bWVudV9pZC9jYXRlZ29yeVwiLCBDYXRlZ29yeSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi9cIiwgZ2V0QWxsQ29tcGFueU1lbnVzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldE1lbnVCeUlkKTtcbnJvdXRlci5wYXRjaChcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIHVwZGF0ZVNjaGVtYSwgdXBkYXRlKTtcbnJvdXRlci5kZWxldGUoXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBfZGVsZXRlTWVudSk7XG5cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuXG5mdW5jdGlvbiBjcmVhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICByZXEuYm9keS5jb21wYW55X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5jb21wYW55X2lkKTtcbiAgICBtZW51U2VydmljZVxuICAgICAgICAuY3JlYXRlTWVudShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IHJlcy5qc29uKG1lbnUpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlNZW51cyhyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGNvbXBhbnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNvbXBhbnlfaWQpO1xuXG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLmdldEFsbENvbXBhbnlNZW51cyh7IGNvbXBhbnlfaWQgfSlcbiAgICAgICAgLnRoZW4oKG1lbnVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbWVudXNcbiAgICAgICAgICAgICAgICA/IG1lbnVzLmxlbmd0aCA9PSAxXG4gICAgICAgICAgICAgICAgICAgID8gcmVzLmpzb24obWVudXNbMF0pXG4gICAgICAgICAgICAgICAgICAgIDogcmVzLmpzb24obWVudXMpXG4gICAgICAgICAgICAgICAgOiByZXMuc2VuZFN0YXR1cyg0MDQpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldE1lbnVCeUlkKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcblxuICAgIG1lbnVTZXJ2aWNlXG4gICAgICAgIC5nZXRNZW51QnlJZChpZClcbiAgICAgICAgLnRoZW4oKG1lbnUpID0+IChtZW51ID8gcmVzLmpzb24obWVudSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGNhbiB1cGRhdGUgdGhlaXIgY29tcGFueSBtZW51XG4gICAgcmVxLmJvZHkuY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLnVwZGF0ZU1lbnUocmVxLnBhcmFtcy5pZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChtZW51KSA9PiAobWVudSA/IHJlcy5qc29uKG1lbnUpIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZU1lbnUocmVxLCByZXMsIG5leHQpIHtcbiAgICAvLyBvbmx5IG93bmVyIGRlbGV0ZSBjYW4gZGVsZXRlIHRoZWlyIGNvbXBhbnkgbWVudVxuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgY29uc3QgY29tcGFueV9pZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCk7XG4gICAgbWVudVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUoe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXMuanNvbih7IGlkIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./menu.validator\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst Category = require(\"./category/category.routes\");\n\nconst menuService = require(\"./menu.service\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/company_id/menu/:menu_id/category\nrouter.use(\"/:menu_id/category\", Category);\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyMenus);\nrouter.get(\"/:id\", getMenuById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteMenu);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .createMenu(req.body)\n .then((menu) => res.json(menu))\n .catch(next);\n}\n\nfunction getAllCompanyMenus(req, res, next) {\n const company_id = parseInt(req.params.company_id);\n\n menuService\n .getAllCompanyMenus({ company_id })\n .then((menus) => {\n return menus\n ? menus.length == 1\n ? res.json(menus[0])\n : res.json(menus)\n : res.sendStatus(404);\n })\n .catch(next);\n}\n\nfunction getMenuById(req, res, next) {\n const id = parseInt(req.params.id);\n\n menuService\n .getMenuById(id)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company menu\n req.body.company_id = parseInt(req.params.company_id);\n menuService\n .updateMenu(req.params.id, req.body)\n .then((menu) => (menu ? res.json(menu) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction _deleteMenu(req, res, next) {\n // only owner delete can delete their company menu\n const id = parseInt(req.params.id);\n const company_id = parseInt(req.params.company_id);\n menuService\n ._delete({\n id,\n company_id,\n })\n .then(() => {\n res.json({ id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/be/menuroutes_be402008d6024066f043e251d81c7a52.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2954",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9965,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9962,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 950,
"endOffset": 1119,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 1121,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1591,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1593,
"endOffset": 1852,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteMenu",
"ranges": [
{
"startOffset": 1854,
"endOffset": 2155,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUudmFsaWRhdG9yLmpzIl0sIm5hbWVzIjpbIkpvaSIsInJlcXVpcmUiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJleHBvcnRzIiwiY3JlYXRlU2NoZW1hIiwicmVxIiwicmVzIiwibmV4dCIsInNjaGVtYSIsIm9iamVjdCIsIm5hbWUiLCJzdHJpbmciLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiY292ZXJfdXJsIiwidXBkYXRlU2NoZW1hIiwic2NoZW1hUnVsZXMiLCJlbXB0eSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsR0FBRyxHQUFHQyxPQUFPLENBQUMsS0FBRCxDQUFuQjs7QUFDQSxNQUFNQyxlQUFlLEdBQUdELE9BQU8sQ0FBQyx1Q0FBRCxDQUEvQjs7QUFFQUUsT0FBTyxDQUFDQyxZQUFSLEdBQXVCLENBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1DLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVc7QUFDdEJDLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFEZ0I7QUFFdEJDLElBQUFBLFdBQVcsRUFBRWIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFGUztBQUd0QkUsSUFBQUEsU0FBUyxFQUFFZCxHQUFHLENBQUNXLE1BQUo7QUFIVyxHQUFYLENBQWY7QUFLQVQsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDWSxZQUFSLEdBQXVCLENBQUNWLEdBQUQsRUFBTUMsR0FBTixFQUFXQyxJQUFYLEtBQW9CO0FBQ3ZDLFFBQU1TLFdBQVcsR0FBRztBQUNoQk4sSUFBQUEsSUFBSSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYU0sS0FBYixDQUFtQixFQUFuQixDQURVO0FBRWhCSixJQUFBQSxXQUFXLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhTSxLQUFiLENBQW1CLEVBQW5CLENBRkc7QUFHaEJILElBQUFBLFNBQVMsRUFBRWQsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFwQjtBQU1BLFFBQU1ULE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdPLFdBQVgsQ0FBZjtBQUVBZCxFQUFBQSxlQUFlLENBQUNHLEdBQUQsRUFBTUUsSUFBTixFQUFZQyxNQUFaLENBQWY7QUFDSCxDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgSm9pID0gcmVxdWlyZShcImpvaVwiKTtcbmNvbnN0IHZhbGlkYXRlUmVxdWVzdCA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvdmFsaWRhdGVSZXF1ZXN0XCIpO1xuXG5leHBvcnRzLmNyZWF0ZVNjaGVtYSA9IChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoe1xuICAgICAgICBuYW1lOiBKb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBjb3Zlcl91cmw6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdChzY2hlbWFSdWxlcyk7XG5cbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcbiJdfQ==",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n description: Joi.string().required(),\n cover_url: Joi.string(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n description: Joi.string().empty(\"\"),\n cover_url: Joi.string().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0b/menuvalidator_0bff2254f7ebb231be87a9bba47a9cd7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2955",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 3168,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 3165,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 216,
"endOffset": 418,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 444,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./category.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../utils/role\");\n\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\n\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true\n}); // api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\n\nrouter.use(\"/:category_id/item\", Item); //api/v1/company/:company_id/:menu_id/category/\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService.createCategory(req.body).then(category => res.json(category)).catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n categoryService.getAllCompanyCategorys({\n menu_id\n }).then(categories => categories ? res.json(categories) : res.sendStatus(404)).catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService.getCategoryById(id).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n categoryService.updateCategory(id, payload).then(category => category ? res.json(category) : res.sendStatus(404)).catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id)\n };\n\n categoryService._delete(payload).then(() => {\n res.json({\n id: payload.id\n });\n }).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZVNjaGVtYSIsInVwZGF0ZVNjaGVtYSIsImF1dGgiLCJBdXRoIiwiaXNPd25lciIsIlJvbGUiLCJJdGVtIiwiY2F0ZWdvcnlTZXJ2aWNlIiwiZXJyb3IiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInVzZSIsInBvc3QiLCJvd25lciIsImNyZWF0ZSIsImdldCIsImdldEFsbENvbXBhbnlDYXRlZ29yeXMiLCJnZXRDYXRlZ29yeUJ5SWQiLCJwYXRjaCIsInVwZGF0ZSIsImRlbGV0ZSIsIl9kZWxldGVDYXRlZ29yeSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiY3JlYXRlQ2F0ZWdvcnkiLCJib2R5IiwidGhlbiIsImNhdGVnb3J5IiwianNvbiIsImNhdGNoIiwibWVudV9pZCIsInBhcnNlSW50IiwicGFyYW1zIiwiY2F0ZWdvcmllcyIsInNlbmRTdGF0dXMiLCJpZCIsInBheWxvYWQiLCJ1cGRhdGVDYXRlZ29yeSIsIl9kZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBRUEsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLHVCQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQywrQkFBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxJQUFJLEdBQUdQLE9BQU8sQ0FBQyxvQkFBRCxDQUFwQjs7QUFFQSxNQUFNUSxlQUFlLEdBQUdSLE9BQU8sQ0FBQyxvQkFBRCxDQUEvQjs7QUFDQSxNQUFNUyxLQUFLLEdBQUdULE9BQU8sQ0FB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QixFQUVLVixJQUZMLENBRVdDLFFBQUQsSUFDRkEsUUFBUSxHQUFHTCxHQUFHLENBQUNNLElBQUosQ0FBU0QsUUFBVCxDQUFILEdBQXdCTCxHQUFHLENBQUNZLFVBQUosQ0FBZSxHQUFmLENBSHhDLEVBS0tMLEtBTEwsQ0FLV04sSUFMWDtBQU1IOztBQUVELFNBQVNMLGVBQVQsQ0FBeUJHLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckM7QUFDQSxRQUFNYSxPQUFPLEdBQUc7QUFDWkQsSUFBQUEsRUFBRSxFQUFFSixRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRyxFQUFaLENBREE7QUFFWkwsSUFBQUEsT0FBTyxFQUFFQyxRQUFRLENBQUNWLEdBQUcsQ0FBQ1csTUFBSixDQUFXRixPQUFaO0FBRkwsR0FBaEI7O0FBS0EzQixFQUFBQSxlQUFlLENBQ1ZtQyxPQURMLENBQ2FGLE9BRGIsRUFFS1YsSUFGTCxDQUVVLE1BQU07QUFDUkosSUFBQUEsR0FBRyxDQUFDTSxJQUFKLENBQVM7QUFBRU8sTUFBQUEsRUFBRSxFQUFFQyxPQUFPLENBQUNEO0FBQWQsS0FBVDtBQUNILEdBSkwsRUFLS04sS0FMTCxDQUtXTixJQUxYO0FBTUgiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5cbmNvbnN0IHsgY3JlYXRlU2NoZW1hLCB1cGRhdGVTY2hlbWEgfSA9IHJlcXVpcmUoXCIuL2NhdGVnb3J5LnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtL2l0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCBjYXRlZ29yeVNlcnZpY2UgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zZXJ2aWNlXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbmNvbnN0IHJvdXRlciA9IGV4cHJlc3MuUm91dGVyKHtcbiAgICBtZXJnZVBhcmFtczogdHJ1ZSxcbn0pO1xuXG4vLyBhcGkvdjEvY29tcGFueS86Y29tcGFueV9pZC9tZW51LzptZW51X2lkL2NhdGVnb3J5LzpjYXRlZ29yeV9pZC9pdGVtXG5yb3V0ZXIudXNlKFwiLzpjYXRlZ29yeV9pZC9pdGVtXCIsIEl0ZW0pO1xuXG4vL2FwaS92MS9jb21wYW55Lzpjb21wYW55X2lkLzptZW51X2lkL2NhdGVnb3J5L1xucm91dGVyLnBvc3QoXCIvXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCBjcmVhdGVTY2hlbWEsIGNyZWF0ZSk7XG5yb3V0ZXIuZ2V0KFwiL1wiLCBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzKTtcbnJvdXRlci5nZXQoXCIvOmlkXCIsIGdldENhdGVnb3J5QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZSk7XG5yb3V0ZXIuZGVsZXRlKFwiLzppZFwiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgX2RlbGV0ZUNhdGVnb3J5KTtcblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG5cbmZ1bmN0aW9uIGNyZWF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuY3JlYXRlQ2F0ZWdvcnkocmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT4gcmVzLmpzb24oY2F0ZWdvcnkpKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBtZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyh7IG1lbnVfaWQgfSlcbiAgICAgICAgLnRoZW4oKGNhdGVnb3JpZXMpID0+XG4gICAgICAgICAgICBjYXRlZ29yaWVzID8gcmVzLmpzb24oY2F0ZWdvcmllcykgOiByZXMuc2VuZFN0YXR1cyg0MDQpXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAuZ2V0Q2F0ZWdvcnlCeUlkKGlkKVxuICAgICAgICAudGhlbigoY2F0ZWdvcnkpID0+XG4gICAgICAgICAgICBjYXRlZ29yeSA/IHJlcy5qc29uKGNhdGVnb3J5KSA6IHJlcy5zZW5kU3RhdHVzKDQwNClcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZShyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIG9ubHkgb3duZXIgY2FuIHVwZGF0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcS5ib2R5O1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgcGF5bG9hZC5tZW51X2lkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5tZW51X2lkKTtcblxuICAgIGNhdGVnb3J5U2VydmljZVxuICAgICAgICAudXBkYXRlQ2F0ZWdvcnkoaWQsIHBheWxvYWQpXG4gICAgICAgIC50aGVuKChjYXRlZ29yeSkgPT5cbiAgICAgICAgICAgIGNhdGVnb3J5ID8gcmVzLmpzb24oY2F0ZWdvcnkpIDogcmVzLnNlbmRTdGF0dXMoNDA0KVxuICAgICAgICApXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gX2RlbGV0ZUNhdGVnb3J5KHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgLy8gb25seSBvd25lciBkZWxldGUgY2FuIGRlbGV0ZSB0aGVpciBjb21wYW55IGNhdGVnb3J5XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgICAgaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpLFxuICAgICAgICBtZW51X2lkOiBwYXJzZUludChyZXEucGFyYW1zLm1lbnVfaWQpLFxuICAgIH07XG5cbiAgICBjYXRlZ29yeVNlcnZpY2VcbiAgICAgICAgLl9kZWxldGUocGF5bG9hZClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzLmpzb24oeyBpZDogcGF5bG9hZC5pZCB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuIl19",
"originalCode": "const express = require(\"express\");\n\nconst { createSchema, updateSchema } = require(\"./category.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../_middlewares/auth\");\nconst Role = require(\"../../../../utils/role\");\nconst Item = require(\"./item/item.routes\");\n\nconst categoryService = require(\"./category.service\");\nconst error = require(\"../../../../utils/error\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\n// api/v1/company/:company_id/menu/:menu_id/category/:category_id/item\nrouter.use(\"/:category_id/item\", Item);\n\n//api/v1/company/:company_id/:menu_id/category/\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/\", getAllCompanyCategorys);\nrouter.get(\"/:id\", getCategoryById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, update);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), _deleteCategory);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n categoryService\n .createCategory(req.body)\n .then((category) => res.json(category))\n .catch(next);\n}\n\nfunction getAllCompanyCategorys(req, res, next) {\n const menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .getAllCompanyCategorys({ menu_id })\n .then((categories) =>\n categories ? res.json(categories) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction getCategoryById(req, res, next) {\n const id = parseInt(req.params.id);\n categoryService\n .getCategoryById(id)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction update(req, res, next) {\n // only owner can update their company category\n const payload = req.body;\n const id = parseInt(req.params.id);\n payload.menu_id = parseInt(req.params.menu_id);\n\n categoryService\n .updateCategory(id, payload)\n .then((category) =>\n category ? res.json(category) : res.sendStatus(404)\n )\n .catch(next);\n}\n\nfunction _deleteCategory(req, res, next) {\n // only owner delete can delete their company category\n const payload = {\n id: parseInt(req.params.id),\n menu_id: parseInt(req.params.menu_id),\n };\n\n categoryService\n ._delete(payload)\n .then(() => {\n res.json({ id: payload.id });\n })\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b7/categoryroutes_b78182bf6ed1b259008b6f4873099820.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2956",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10017,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10014,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 1022,
"endOffset": 1150,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 1152,
"endOffset": 1400,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1402,
"endOffset": 1605,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "update",
"ranges": [
{
"startOffset": 1607,
"endOffset": 1937,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_deleteCategory",
"ranges": [
{
"startOffset": 1939,
"endOffset": 2251,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVTY2hlbWEiLCJyZXEiLCJyZXMiLCJuZXh0Iiwic2NoZW1hIiwib2JqZWN0IiwibmFtZSIsInN0cmluZyIsInJlcXVpcmVkIiwibWVudV9pZCIsIm51bWJlciIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsMENBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxPQUFPLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBRmEsR0FBWCxDQUFmO0FBSUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBTkQ7O0FBUUFMLE9BQU8sQ0FBQ1ksWUFBUixHQUF1QixDQUFDVixHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNUyxXQUFXLEdBQUc7QUFDaEJOLElBQUFBLElBQUksRUFBRVYsR0FBRyxDQUFDVyxNQUFKLEdBQWFNLEtBQWIsQ0FBbUIsRUFBbkIsQ0FEVTtBQUVoQkosSUFBQUEsT0FBTyxFQUFFYixHQUFHLENBQUNjLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZPLEdBQXBCO0FBS0EsUUFBTVQsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBV08sV0FBWCxDQUFmO0FBRUFkLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVEQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICB9KTtcbiAgICB2YWxpZGF0ZVJlcXVlc3QocmVxLCBuZXh0LCBzY2hlbWEpO1xufTtcblxuZXhwb3J0cy51cGRhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWFSdWxlcyA9IHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgICAgICBtZW51X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n menu_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n menu_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/1b/categoryvalidators_1b6fa12bad6d90716c229117a118363b.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2957",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2827,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2824,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 219,
"endOffset": 388,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 414,
"endOffset": 616,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createSchema,\n updateSchema\n} = require(\"./item.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../../../_middlewares/auth\");\n\nconst Role = require(\"../../../../../utils/role\");\n\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService.createItem(req.body).then(item => res.status(201).json(item)).catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.getItemById(id).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.updateItem(id, req.body).then(item => item ? res.json(item) : res.sendStatus(404)).catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService.deleteItem({\n id\n }).then(() => res.json({\n message: \"Item deleted successfully\",\n id\n })).catch(next);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ucm91dGVzLmpzIl0sIm5hbWVzIjpbImV4cHJlc3MiLCJyZXF1aXJlIiwiY3JlYXRlU2NoZW1hIiwidXBkYXRlU2NoZW1hIiwiYXV0aCIsIkF1dGgiLCJpc093bmVyIiwiUm9sZSIsIml0ZW1TZXJ2aWNlIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJwb3N0Iiwib3duZXIiLCJjcmVhdGUiLCJnZXQiLCJnZXRCeUlkIiwicGF0Y2giLCJ1cGRhdGVJdGVtIiwiZGVsZXRlIiwiZGVsZXRlSXRlbSIsIm1vZHVsZSIsImV4cG9ydHMiLCJyZXEiLCJyZXMiLCJuZXh0IiwiYm9keSIsImNhdGVnb3J5X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJjcmVhdGVJdGVtIiwidGhlbiIsIml0ZW0iLCJzdGF0dXMiLCJqc29uIiwiY2F0Y2giLCJpZCIsImdldEl0ZW1CeUlkIiwic2VuZFN0YXR1cyIsIm1lc3NhZ2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxZQUFGO0FBQWdCQyxFQUFBQTtBQUFoQixJQUFpQ0YsT0FBTyxDQUFDLG1CQUFELENBQTlDOztBQUNBLE1BQU07QUFBRUcsRUFBQUEsSUFBSSxFQUFFQyxJQUFSO0FBQWNDLEVBQUFBO0FBQWQsSUFBMEJMLE9BQU8sQ0FBQyxrQ0FBRCxDQUF2Qzs7QUFDQSxNQUFNTSxJQUFJLEdBQUdOLE9BQU8sQ0FBQywyQkFBRCxDQUFwQjs7QUFDQSxNQUFNTyxXQUFXLEdBQUdQLE9BQU8sQ0FBQyxnQkFBRCxDQUEzQjs7QUFFQSxNQUFNUSxNQUFNLEdBQUdULE9BQU8sQ0FBQ1UsTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxJQUFQLENBQVksR0FBWixFQUFpQlAsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXJCLEVBQXFDUCxPQUFPLEVBQTVDLEVBQWdESixZQUFoRCxFQUE4RFksTUFBOUQ7QUFDQUwsTUFBTSxDQUFDTSxHQUFQLENBQVcsTUFBWCxFQUFtQkMsT0FBbkI7QUFDQVAsTUFBTSxDQUFDUSxLQUFQLENBQWEsTUFBYixFQUFxQlosSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQXpCLEVBQXlDUCxPQUFPLEVBQWhELEVBQW9ESCxZQUFwRCxFQUFrRWUsVUFBbEU7QUFDQVQsTUFBTSxDQUFDVSxNQUFQLENBQWMsTUFBZCxFQUFzQmQsSUFBSSxDQUFDLENBQUNFLElBQUksQ0FBQ00sS0FBTixDQUFELENBQTFCLEVBQTBDUCxPQUFPLEVBQWpELEVBQXFEYyxVQUFyRDtBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJiLE1BQWpCOztBQUVBLFNBQVNLLE1BQVQsQ0FBZ0JTLEdBQWhCLEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsRUFBZ0M7QUFDNUJGLEVBQUFBLEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxXQUFULEdBQXVCQyxRQUFRLENBQUNMLEdBQUcsQ0FBQ00sTUFBSixDQUFXRixXQUFaLENBQS9CO0FBQ0FuQixFQUFBQSxXQUFXLENBQ05zQixVQURMLENBQ2dCUCxHQUFHLENBQUNHLElBRHBCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFVUixHQUFHLENBQUNTLE1BQUosQ0FBVyxHQUFYLEVBQWdCQyxJQUFoQixDQUFxQkYsSUFBckIsQ0FGcEIsRUFHS0csS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1QsT0FBVCxDQUFpQk8sR0FBakIsRUFBc0JDLEdBQXRCLEVBQTJCQyxJQUEzQixFQUFpQztBQUM3QixRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTjZCLFdBREwsQ0FDaUJELEVBRGpCLEVBRUtMLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU1AsVUFBVCxDQUFvQkssR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlUsVUFETCxDQUNnQmtCLEVBRGhCLEVBQ29CYixHQUFHLENBQUNHLElBRHhCLEVBRUtLLElBRkwsQ0FFV0MsSUFBRCxJQUFXQSxJQUFJLEdBQUdSLEdBQUcsQ0FBQ1UsSUFBSixDQUFTRixJQUFULENBQUgsR0FBb0JSLEdBQUcsQ0FBQ2MsVUFBSixDQUFlLEdBQWYsQ0FGN0MsRUFHS0gsS0FITCxDQUdXVixJQUhYO0FBSUg7O0FBRUQsU0FBU0wsVUFBVCxDQUFvQkcsR0FBcEIsRUFBeUJDLEdBQXpCLEVBQThCQyxJQUE5QixFQUFvQztBQUNoQyxRQUFNVyxFQUFFLEdBQUdSLFFBQVEsQ0FBQ0wsR0FBRyxDQUFDTSxNQUFKLENBQVdPLEVBQVosQ0FBbkI7QUFDQTVCLEVBQUFBLFdBQVcsQ0FDTlksVUFETCxDQUNnQjtBQUFFZ0IsSUFBQUE7QUFBRixHQURoQixFQUVLTCxJQUZMLENBRVUsTUFDRlAsR0FBRyxDQUFDVSxJQUFKLENBQVM7QUFDTEssSUFBQUEsT0FBTyxFQUFFLDJCQURKO0FBRUxILElBQUFBO0FBRkssR0FBVCxDQUhSLEVBUUtELEtBUkwsQ0FRV1YsSUFSWDtBQVNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBjcmVhdGVTY2hlbWEsIHVwZGF0ZVNjaGVtYSB9ID0gcmVxdWlyZShcIi4vaXRlbS52YWxpZGF0b3JzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoLCBpc093bmVyIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCBSb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBpdGVtU2VydmljZSA9IHJlcXVpcmUoXCIuL2l0ZW0uc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wb3N0KFwiL1wiLCBBdXRoKFtSb2xlLm93bmVyXSksIGlzT3duZXIoKSwgY3JlYXRlU2NoZW1hLCBjcmVhdGUpO1xucm91dGVyLmdldChcIi86aWRcIiwgZ2V0QnlJZCk7XG5yb3V0ZXIucGF0Y2goXCIvOmlkXCIsIEF1dGgoW1JvbGUub3duZXJdKSwgaXNPd25lcigpLCB1cGRhdGVTY2hlbWEsIHVwZGF0ZUl0ZW0pO1xucm91dGVyLmRlbGV0ZShcIi86aWRcIiwgQXV0aChbUm9sZS5vd25lcl0pLCBpc093bmVyKCksIGRlbGV0ZUl0ZW0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJvdXRlcjtcblxuZnVuY3Rpb24gY3JlYXRlKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgcmVxLmJvZHkuY2F0ZWdvcnlfaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmNhdGVnb3J5X2lkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAuY3JlYXRlSXRlbShyZXEuYm9keSlcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IHJlcy5zdGF0dXMoMjAxKS5qc29uKGl0ZW0pKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG5cbmZ1bmN0aW9uIGdldEJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBjb25zdCBpZCA9IHBhcnNlSW50KHJlcS5wYXJhbXMuaWQpO1xuICAgIGl0ZW1TZXJ2aWNlXG4gICAgICAgIC5nZXRJdGVtQnlJZChpZClcbiAgICAgICAgLnRoZW4oKGl0ZW0pID0+IChpdGVtID8gcmVzLmpzb24oaXRlbSkgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJdGVtKHJlcSwgcmVzLCBuZXh0KSB7XG4gICAgY29uc3QgaWQgPSBwYXJzZUludChyZXEucGFyYW1zLmlkKTtcbiAgICBpdGVtU2VydmljZVxuICAgICAgICAudXBkYXRlSXRlbShpZCwgcmVxLmJvZHkpXG4gICAgICAgIC50aGVuKChpdGVtKSA9PiAoaXRlbSA/IHJlcy5qc29uKGl0ZW0pIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZGVsZXRlSXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IGlkID0gcGFyc2VJbnQocmVxLnBhcmFtcy5pZCk7XG4gICAgaXRlbVNlcnZpY2VcbiAgICAgICAgLmRlbGV0ZUl0ZW0oeyBpZCB9KVxuICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgcmVzLmpzb24oe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwiSXRlbSBkZWxldGVkIHN1Y2Nlc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2gobmV4dCk7XG59XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { createSchema, updateSchema } = require(\"./item.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../../../_middlewares/auth\");\nconst Role = require(\"../../../../../utils/role\");\nconst itemService = require(\"./item.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.post(\"/\", Auth([Role.owner]), isOwner(), createSchema, create);\nrouter.get(\"/:id\", getById);\nrouter.patch(\"/:id\", Auth([Role.owner]), isOwner(), updateSchema, updateItem);\nrouter.delete(\"/:id\", Auth([Role.owner]), isOwner(), deleteItem);\n\nmodule.exports = router;\n\nfunction create(req, res, next) {\n req.body.category_id = parseInt(req.params.category_id);\n itemService\n .createItem(req.body)\n .then((item) => res.status(201).json(item))\n .catch(next);\n}\n\nfunction getById(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .getItemById(id)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction updateItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .updateItem(id, req.body)\n .then((item) => (item ? res.json(item) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction deleteItem(req, res, next) {\n const id = parseInt(req.params.id);\n itemService\n .deleteItem({ id })\n .then(() =>\n res.json({\n message: \"Item deleted successfully\",\n id,\n })\n )\n .catch(next);\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/36/itemroutes_36224a233e92438cb700c78a83979dce.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2958",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 7128,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 7125,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "create",
"ranges": [
{
"startOffset": 709,
"endOffset": 892,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getById",
"ranges": [
{
"startOffset": 894,
"endOffset": 1069,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 1071,
"endOffset": 1258,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 1260,
"endOffset": 1466,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\")\n };\n const schema = Joi.object(schemaRules);\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0udmFsaWRhdG9ycy5qcyJdLCJuYW1lcyI6WyJKb2kiLCJyZXF1aXJlIiwidmFsaWRhdGVSZXF1ZXN0IiwiZXhwb3J0cyIsImNyZWF0ZVNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwicmVxdWlyZWQiLCJwcmljZSIsIm51bWJlciIsInF1YW50aXR5IiwiZGVzY3JpcHRpb24iLCJpbWFnZV91cmwiLCJjYXRlZ29yeV9pZCIsInVwZGF0ZVNjaGVtYSIsInNjaGVtYVJ1bGVzIiwiZW1wdHkiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsNkNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsWUFBUixHQUF1QixDQUFDQyxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUN2QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCQyxJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRGdCO0FBRXRCQyxJQUFBQSxLQUFLLEVBQUViLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiLEVBRmU7QUFHdEJHLElBQUFBLFFBQVEsRUFBRWYsR0FBRyxDQUFDYyxNQUFKLEdBQWFGLFFBQWIsRUFIWTtBQUl0QkksSUFBQUEsV0FBVyxFQUFFaEIsR0FBRyxDQUFDVyxNQUFKLEdBQWFDLFFBQWIsRUFKUztBQUt0QkssSUFBQUEsU0FBUyxFQUFFakIsR0FBRyxDQUFDVyxNQUFKLEVBTFc7QUFNdEJPLElBQUFBLFdBQVcsRUFBRWxCLEdBQUcsQ0FBQ2MsTUFBSixHQUFhRixRQUFiO0FBTlMsR0FBWCxDQUFmO0FBUUFWLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBVkQ7O0FBWUFMLE9BQU8sQ0FBQ2dCLFlBQVIsR0FBdUIsQ0FBQ2QsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDdkMsUUFBTWEsV0FBVyxHQUFHO0FBQ2hCVixJQUFBQSxJQUFJLEVBQUVWLEdBQUcsQ0FBQ1csTUFBSixHQUFhVSxLQUFiLENBQW1CLEVBQW5CLENBRFU7QUFFaEJSLElBQUFBLEtBQUssRUFBRWIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUztBQUdoQk4sSUFBQUEsUUFBUSxFQUFFZixHQUFHLENBQUNjLE1BQUosR0FBYU8sS0FBYixDQUFtQixFQUFuQixDQUhNO0FBSWhCTCxJQUFBQSxXQUFXLEVBQUVoQixHQUFHLENBQUNXLE1BQUosR0FBYVUsS0FBYixDQUFtQixFQUFuQixDQUpHO0FBS2hCSixJQUFBQSxTQUFTLEVBQUVqQixHQUFHLENBQUNXLE1BQUosRUFMSztBQU1oQk8sSUFBQUEsV0FBVyxFQUFFbEIsR0FBRyxDQUFDYyxNQUFKLEdBQWFPLEtBQWIsQ0FBbUIsRUFBbkI7QUFORyxHQUFwQjtBQVNBLFFBQU1iLE1BQU0sR0FBR1IsR0FBRyxDQUFDUyxNQUFKLENBQVdXLFdBQVgsQ0FBZjtBQUVBbEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FiRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEpvaSA9IHJlcXVpcmUoXCJqb2lcIik7XG5jb25zdCB2YWxpZGF0ZVJlcXVlc3QgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL3ZhbGlkYXRlUmVxdWVzdFwiKTtcblxuZXhwb3J0cy5jcmVhdGVTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgbmFtZTogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIHByaWNlOiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICAgICAgICBkZXNjcmlwdGlvbjogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgICAgIGltYWdlX3VybDogSm9pLnN0cmluZygpLFxuICAgICAgICBjYXRlZ29yeV9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hUnVsZXMgPSB7XG4gICAgICAgIG5hbWU6IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcHJpY2U6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgcXVhbnRpdHk6IEpvaS5udW1iZXIoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IEpvaS5zdHJpbmcoKS5lbXB0eShcIlwiKSxcbiAgICAgICAgaW1hZ2VfdXJsOiBKb2kuc3RyaW5nKCksXG4gICAgICAgIGNhdGVnb3J5X2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoXCJcIiksXG4gICAgfTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpvaS5vYmplY3Qoc2NoZW1hUnVsZXMpO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../../../_middlewares/validateRequest\");\n\nexports.createSchema = (req, res, next) => {\n const schema = Joi.object({\n name: Joi.string().required(),\n price: Joi.number().required(),\n quantity: Joi.number().required(),\n description: Joi.string().required(),\n image_url: Joi.string(),\n category_id: Joi.number().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateSchema = (req, res, next) => {\n const schemaRules = {\n name: Joi.string().empty(\"\"),\n price: Joi.number().empty(\"\"),\n quantity: Joi.number().empty(\"\"),\n description: Joi.string().empty(\"\"),\n image_url: Joi.string(),\n category_id: Joi.number().empty(\"\"),\n };\n\n const schema = Joi.object(schemaRules);\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/b3/itemvalidators_b3b5560b6fc02d936e24d53b4a41cdcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2959",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4275,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4272,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createSchema",
"ranges": [
{
"startOffset": 222,
"endOffset": 541,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateSchema",
"ranges": [
{
"startOffset": 567,
"endOffset": 916,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Item = require(\"./item.model\");\n\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({\n id\n });\n\n if (!item) {\n return null;\n }\n\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query().delete().where({ ...queryParams\n });\n} // =================== helpers ============================\n\n\nasync function getItem(params) {\n const item = await Item.query().where({ ...params\n }).first();\n return item;\n}\n\nfunction basicDetails(item) {\n const {\n id,\n name,\n description\n } = item;\n return {\n id,\n name,\n description\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0uc2VydmljZS5qcyJdLCJuYW1lcyI6WyJJdGVtIiwicmVxdWlyZSIsImVycm9yIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZUl0ZW0iLCJnZXRJdGVtQnlJZCIsInVwZGF0ZUl0ZW0iLCJkZWxldGVJdGVtIiwicGFyYW1zIiwiaXRlbSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRJdGVtIiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsIndoZXJlIiwiZmlyc3QiLCJiYXNpY0RldGFpbHMiLCJuYW1lIiwiZGVzY3JpcHRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLGNBQUQsQ0FBcEI7O0FBQ0EsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsNEJBQUQsQ0FBckI7O0FBRUFFLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFdBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQTtBQUphLENBQWpCOztBQU9BLGVBQWVILFVBQWYsQ0FBMEJJLE1BQTFCLEVBQWtDO0FBQzlCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FBYUMsTUFBYixDQUFvQkgsTUFBcEIsQ0FBbkI7QUFDQSxTQUFPQyxJQUFQO0FBQ0g7O0FBRUQsZUFBZUosV0FBZixDQUEyQk8sRUFBM0IsRUFBK0I7QUFDM0IsUUFBTUgsSUFBSSxHQUFHLE1BQU1JLE9BQU8sQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBMUI7O0FBQ0EsTUFBSSxDQUFDSCxJQUFMLEVBQVc7QUFDUCxXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPQSxJQUFQO0FBQ0g7O0FBRUQsZUFBZUgsVUFBZixDQUEwQk0sRUFBMUIsRUFBOEJKLE1BQTlCLEVBQXNDO0FBQ2xDLFFBQU1GLFVBQVUsR0FBRyxNQUFNUCxJQUFJLENBQUNXLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DSixNQUFuQyxDQUF6QjtBQUVBLFNBQU9GLFVBQVA7QUFDSDs7QUFFRCxlQUFlQyxVQUFmLENBQTBCUSxXQUExQixFQUF1QztBQUNuQyxRQUFNaEIsSUFBSSxDQUFDVyxLQUFMLEdBQ0RNLE1BREMsR0FFREMsS0FGQyxDQUVLLEVBQUUsR0FBR0Y7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUNBLGVBQWVGLE9BQWYsQ0FBdUJMLE1BQXZCLEVBQStCO0FBQzNCLFFBQU1DLElBQUksR0FBRyxNQUFNVixJQUFJLENBQUNXLEtBQUwsR0FDZE8sS0FEYyxDQUNSLEVBQUUsR0FBR1Q7QUFBTCxHQURRLEVBRWRVLEtBRmMsRUFBbkI7QUFHQSxTQUFPVCxJQUFQO0FBQ0g7O0FBRUQsU0FBU1UsWUFBVCxDQUFzQlYsSUFBdEIsRUFBNEI7QUFDeEIsUUFBTTtBQUFFRyxJQUFBQSxFQUFGO0FBQU1RLElBQUFBLElBQU47QUFBWUMsSUFBQUE7QUFBWixNQUE0QlosSUFBbEM7QUFDQSxTQUFPO0FBQUVHLElBQUFBLEVBQUY7QUFBTVEsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQTtBQUFaLEdBQVA7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IEl0ZW0gPSByZXF1aXJlKFwiLi9pdGVtLm1vZGVsXCIpO1xuY29uc3QgZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vdXRpbHMvZXJyb3JcIik7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUl0ZW0sXG4gICAgZ2V0SXRlbUJ5SWQsXG4gICAgdXBkYXRlSXRlbSxcbiAgICBkZWxldGVJdGVtLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlSXRlbShwYXJhbXMpIHtcbiAgICBjb25zdCBpdGVtID0gYXdhaXQgSXRlbS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBpdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRJdGVtQnlJZChpZCkge1xuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBnZXRJdGVtKHsgaWQgfSk7XG4gICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlSXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlSXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwgcGFyYW1zKTtcblxuICAgIHJldHVybiB1cGRhdGVJdGVtO1xufVxuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVJdGVtKHF1ZXJ5UGFyYW1zKSB7XG4gICAgYXdhaXQgSXRlbS5xdWVyeSgpXG4gICAgICAgIC5kZWxldGUoKVxuICAgICAgICAud2hlcmUoeyAuLi5xdWVyeVBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PSBoZWxwZXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldEl0ZW0ocGFyYW1zKSB7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IEl0ZW0ucXVlcnkoKVxuICAgICAgICAud2hlcmUoeyAuLi5wYXJhbXMgfSlcbiAgICAgICAgLmZpcnN0KCk7XG4gICAgcmV0dXJuIGl0ZW07XG59XG5cbmZ1bmN0aW9uIGJhc2ljRGV0YWlscyhpdGVtKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSwgZGVzY3JpcHRpb24gfSA9IGl0ZW07XG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGRlc2NyaXB0aW9uIH07XG59XG4iXX0=",
"originalCode": "const Item = require(\"./item.model\");\nconst error = require(\"../../../../../utils/error\");\n\nmodule.exports = {\n createItem,\n getItemById,\n updateItem,\n deleteItem,\n};\n\nasync function createItem(params) {\n const item = await Item.query().insert(params);\n return item;\n}\n\nasync function getItemById(id) {\n const item = await getItem({ id });\n if (!item) {\n return null;\n }\n return item;\n}\n\nasync function updateItem(id, params) {\n const updateItem = await Item.query().patchAndFetchById(id, params);\n\n return updateItem;\n}\n\nasync function deleteItem(queryParams) {\n await Item.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// =================== helpers ============================\nasync function getItem(params) {\n const item = await Item.query()\n .where({ ...params })\n .first();\n return item;\n}\n\nfunction basicDetails(item) {\n const { id, name, description } = item;\n return { id, name, description };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/fe/itemservice_fe9f4b7b2b3f8f4e9108451c8cd072d7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2960",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4449,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4446,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createItem",
"ranges": [
{
"startOffset": 261,
"endOffset": 363,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItemById",
"ranges": [
{
"startOffset": 365,
"endOffset": 496,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateItem",
"ranges": [
{
"startOffset": 498,
"endOffset": 631,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "deleteItem",
"ranges": [
{
"startOffset": 633,
"endOffset": 734,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getItem",
"ranges": [
{
"startOffset": 797,
"endOffset": 912,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 914,
"endOffset": 1051,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../../../constants/tableNames\");\n\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Item;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIml0ZW0ubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwidGFibGVOYW1lcyIsImRiIiwiSXRlbSIsInRhYmxlTmFtZSIsIml0ZW0iLCJyZWxhdGlvbk1hcHBpbmdzIiwiQ2F0ZWdvcnkiLCJjYXRlZ29yeSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMscUNBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsRUFBRSxHQUFHRixPQUFPLENBQUMsbUJBQUQsQ0FBbEI7O0FBRUEsTUFBTUcsSUFBTixTQUFtQkosS0FBbkIsQ0FBeUI7QUFDckIsYUFBV0ssU0FBWCxHQUF1QjtBQUNuQixXQUFPSCxVQUFVLENBQUNJLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsUUFBUSxHQUFHUCxPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUEsV0FBTztBQUNIUSxNQUFBQSxRQUFRLEVBQUU7QUFDTkMsUUFBQUEsUUFBUSxFQUFFVixLQUFLLENBQUNXLG9CQURWO0FBRU5DLFFBQUFBLFVBQVUsRUFBRUosUUFGTjtBQUdOSyxRQUFBQSxJQUFJLEVBQUU7QUFDRkMsVUFBQUEsSUFBSSxFQUFHLEdBQUVaLFVBQVUsQ0FBQ0ksSUFBSyxjQUR2QjtBQUVGUyxVQUFBQSxFQUFFLEVBQUcsR0FBRWIsVUFBVSxDQUFDTyxRQUFTO0FBRnpCO0FBSEE7QUFEUCxLQUFQO0FBVUg7O0FBbEJvQjs7QUFxQnpCVCxLQUFLLENBQUNnQixJQUFOLENBQVdiLEVBQVg7QUFFQWMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCZCxJQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vLi4vZGJcIik7XG5cbmNsYXNzIEl0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLml0ZW07XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICBjb25zdCBDYXRlZ29yeSA9IHJlcXVpcmUoXCIuLi8uLi9jYXRlZ29yeS9jYXRlZ29yeS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLml0ZW19LmNhdGVnb3J5X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY2F0ZWdvcnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEl0ZW07XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../../../constants/tableNames\");\nconst db = require(\"../../../../../db\");\n\nclass Item extends Model {\n static get tableName() {\n return tableNames.item;\n }\n\n static get relationMappings() {\n const Category = require(\"../../category/category.model\");\n\n return {\n category: {\n relation: Model.BelongsToOneRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.item}.category_id`,\n to: `${tableNames.category}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Item;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8b/itemmodel_8b2ea8eb24d106daa44c9e881feaebd8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2961",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2995,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2992,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Item",
"ranges": [
{
"startOffset": 242,
"endOffset": 242,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 278,
"endOffset": 327,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 338,
"endOffset": 670,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Category = require(\"./category.model\");\n\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({\n id\n }); //check if category name is duplicated\n\n if (params.name && category.name !== params.name && (await getCategory({\n name: params.name,\n menu_id: params.menu_id\n }))) {\n error(`Category ${params.name} already exists`);\n }\n\n const updatedcategory = await Category.query().patchAndFetchById(id, { ...params\n });\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({\n id\n });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query().delete().where({ ...params\n });\n} // =========== helpers===========\n\n\nasync function getCategory(param) {\n const category = await Category.query().where({ ...param\n }).withGraphFetched(\"items\").first();\n return category;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5LnNlcnZpY2UuanMiXSwibmFtZXMiOlsiQ2F0ZWdvcnkiLCJyZXF1aXJlIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIiwiY3JlYXRlQ2F0ZWdvcnkiLCJ1cGRhdGVDYXRlZ29yeSIsImdldEFsbENhdGVnb3J5IiwiZ2V0QWxsQ29tcGFueUNhdGVnb3J5cyIsImdldENhdGVnb3J5QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJjYXRlZ29yeSIsInF1ZXJ5IiwiaW5zZXJ0IiwiaWQiLCJnZXRDYXRlZ29yeSIsIm5hbWUiLCJtZW51X2lkIiwidXBkYXRlZGNhdGVnb3J5IiwicGF0Y2hBbmRGZXRjaEJ5SWQiLCJjYXRlZ29yeXMiLCJ3aGVyZSIsImxlbmd0aCIsImRlbGV0ZSIsInBhcmFtIiwid2l0aEdyYXBoRmV0Y2hlZCIsImZpcnN0Il0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxRQUFRLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF4Qjs7QUFDQSxNQUFNQyxLQUFLLEdBQUdELE9BQU8sQ0FBQyx5QkFBRCxDQUFyQjs7QUFFQUUsTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2JDLEVBQUFBLGNBRGE7QUFFYkMsRUFBQUEsY0FGYTtBQUdiQyxFQUFBQSxjQUhhO0FBSWJDLEVBQUFBLHNCQUphO0FBS2JDLEVBQUFBLGVBTGE7QUFNYkMsRUFBQUE7QUFOYSxDQUFqQjs7QUFTQSxlQUFlTCxjQUFmLENBQThCTSxNQUE5QixFQUFzQztBQUNsQyxRQUFNQyxRQUFRLEdBQUcsTUFBTVosUUFBUSxDQUFDYSxLQUFULEdBQWlCQyxNQUFqQixDQUF3QkgsTUFBeEIsQ0FBdkI7QUFDQSxTQUFPQyxRQUFQO0FBQ0g7O0FBRUQsZUFBZU4sY0FBZixDQUE4QlMsRUFBOUIsRUFBa0NKLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1DLFFBQVEsR0FBRyxNQUFNSSxXQUFXLENBQUM7QUFBRUQsSUFBQUE7QUFBRixHQUFELENBQWxDLENBRHNDLENBRXRDOztBQUNBLE1BQ0lKLE1BQU0sQ0FBQ00sSUFBUCxJQUNBTCxRQUFRLENBQUNLLElBQVQsS0FBa0JOLE1BQU0sQ0FBQ00sSUFEekIsS0FFQyxNQUFNRCxXQUFXLENBQUM7QUFDZkMsSUFBQUEsSUFBSSxFQUFFTixNQUFNLENBQUNNLElBREU7QUFFZkMsSUFBQUEsT0FBTyxFQUFFUCxNQUFNLENBQUNPO0FBRkQsR0FBRCxDQUZsQixDQURKLEVBT0U7QUFDRWhCLElBQUFBLEtBQUssQ0FBRSxZQUFXUyxNQUFNLENBQUNNLElBQUssaUJBQXpCLENBQUw7QUFDSDs7QUFDRCxRQUFNRSxlQUFlLEdBQUcsTUFBTW5CLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQk8saUJBQWpCLENBQW1DTCxFQUFuQyxFQUF1QyxFQUNqRSxHQUFHSjtBQUQ4RCxHQUF2QyxDQUE5QjtBQUlBLFNBQU9RLGVBQVA7QUFDSDs7QUFFRCxlQUFlWixjQUFmLEdBQWdDO0FBQzVCLFFBQU1jLFNBQVMsR0FBRyxNQUFNckIsUUFBUSxDQUFDYSxLQUFULEVBQXhCO0FBQ0EsU0FBT1EsU0FBUDtBQUNIOztBQUVELGVBQWViLHNCQUFmLENBQXNDRyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNVSxTQUFTLEdBQUcsTUFBTXJCLFFBQVEsQ0FBQ2EsS0FBVCxHQUFpQlMsS0FBakIsQ0FBdUJYLE1BQXZCLENBQXhCOztBQUVBLE1BQUlVLFNBQVMsQ0FBQ0UsTUFBVixHQUFtQixDQUF2QixFQUEwQjtBQUN0QixXQUFPLElBQVA7QUFDSDs7QUFDRCxTQUFPRixTQUFQO0FBQ0g7O0FBRUQsZUFBZVosZUFBZixDQUErQk0sRUFBL0IsRUFBbUM7QUFDL0IsUUFBTUgsUUFBUSxHQUFHLE1BQU1JLFdBQVcsQ0FBQztBQUFFRCxJQUFBQTtBQUFGLEdBQUQsQ0FBbEM7QUFDQSxTQUFPSCxRQUFQO0FBQ0g7O0FBRUQsZUFBZUYsT0FBZixDQUF1QkMsTUFBdkIsRUFBK0I7QUFDM0IsUUFBTVgsUUFBUSxDQUFDYSxLQUFULEdBQ0RXLE1BREMsR0FFREYsS0FGQyxDQUVLLEVBQUUsR0FBR1g7QUFBTCxHQUZMLENBQU47QUFHSCxDLENBRUQ7OztBQUVBLGVBQWVLLFdBQWYsQ0FBMkJTLEtBQTNCLEVBQWtDO0FBQzlCLFFBQU1iLFFBQVEsR0FBRyxNQUFNWixRQUFRLENBQUNhLEtBQVQsR0FDbEJTLEtBRGtCLENBQ1osRUFBRSxHQUFHRztBQUFMLEdBRFksRUFFbEJDLGdCQUZrQixDQUVELE9BRkMsRUFHbEJDLEtBSGtCLEVBQXZCO0FBS0EsU0FBT2YsUUFBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ2F0ZWdvcnkgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5tb2RlbFwiKTtcbmNvbnN0IGVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL2Vycm9yXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVDYXRlZ29yeSxcbiAgICB1cGRhdGVDYXRlZ29yeSxcbiAgICBnZXRBbGxDYXRlZ29yeSxcbiAgICBnZXRBbGxDb21wYW55Q2F0ZWdvcnlzLFxuICAgIGdldENhdGVnb3J5QnlJZCxcbiAgICBfZGVsZXRlLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2F0ZWdvcnkocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpLmluc2VydChwYXJhbXMpO1xuICAgIHJldHVybiBjYXRlZ29yeTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2F0ZWdvcnkoaWQsIHBhcmFtcykge1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gYXdhaXQgZ2V0Q2F0ZWdvcnkoeyBpZCB9KTtcbiAgICAvL2NoZWNrIGlmIGNhdGVnb3J5IG5hbWUgaXMgZHVwbGljYXRlZFxuICAgIGlmIChcbiAgICAgICAgcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgY2F0ZWdvcnkubmFtZSAhPT0gcGFyYW1zLm5hbWUgJiZcbiAgICAgICAgKGF3YWl0IGdldENhdGVnb3J5KHtcbiAgICAgICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICAgICAgbWVudV9pZDogcGFyYW1zLm1lbnVfaWQsXG4gICAgICAgIH0pKVxuICAgICkge1xuICAgICAgICBlcnJvcihgQ2F0ZWdvcnkgJHtwYXJhbXMubmFtZX0gYWxyZWFkeSBleGlzdHNgKTtcbiAgICB9XG4gICAgY29uc3QgdXBkYXRlZGNhdGVnb3J5ID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS5wYXRjaEFuZEZldGNoQnlJZChpZCwge1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXBkYXRlZGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxDYXRlZ29yeSgpIHtcbiAgICBjb25zdCBjYXRlZ29yeXMgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpO1xuICAgIHJldHVybiBjYXRlZ29yeXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEFsbENvbXBhbnlDYXRlZ29yeXMocGFyYW1zKSB7XG4gICAgY29uc3QgY2F0ZWdvcnlzID0gYXdhaXQgQ2F0ZWdvcnkucXVlcnkoKS53aGVyZShwYXJhbXMpO1xuXG4gICAgaWYgKGNhdGVnb3J5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcnlzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDYXRlZ29yeUJ5SWQoaWQpIHtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IGdldENhdGVnb3J5KHsgaWQgfSk7XG4gICAgcmV0dXJuIGNhdGVnb3J5O1xufVxuXG5hc3luYyBmdW5jdGlvbiBfZGVsZXRlKHBhcmFtcykge1xuICAgIGF3YWl0IENhdGVnb3J5LnF1ZXJ5KClcbiAgICAgICAgLmRlbGV0ZSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KTtcbn1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldENhdGVnb3J5KHBhcmFtKSB7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCBDYXRlZ29yeS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIilcbiAgICAgICAgLmZpcnN0KCk7XG5cbiAgICByZXR1cm4gY2F0ZWdvcnk7XG59XG4iXX0=",
"originalCode": "const Category = require(\"./category.model\");\nconst error = require(\"../../../../utils/error\");\n\nmodule.exports = {\n createCategory,\n updateCategory,\n getAllCategory,\n getAllCompanyCategorys,\n getCategoryById,\n _delete,\n};\n\nasync function createCategory(params) {\n const category = await Category.query().insert(params);\n return category;\n}\n\nasync function updateCategory(id, params) {\n const category = await getCategory({ id });\n //check if category name is duplicated\n if (\n params.name &&\n category.name !== params.name &&\n (await getCategory({\n name: params.name,\n menu_id: params.menu_id,\n }))\n ) {\n error(`Category ${params.name} already exists`);\n }\n const updatedcategory = await Category.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedcategory;\n}\n\nasync function getAllCategory() {\n const categorys = await Category.query();\n return categorys;\n}\n\nasync function getAllCompanyCategorys(params) {\n const categorys = await Category.query().where(params);\n\n if (categorys.length < 1) {\n return null;\n }\n return categorys;\n}\n\nasync function getCategoryById(id) {\n const category = await getCategory({ id });\n return category;\n}\n\nasync function _delete(params) {\n await Category.query()\n .delete()\n .where({ ...params });\n}\n\n// =========== helpers===========\n\nasync function getCategory(param) {\n const category = await Category.query()\n .where({ ...param })\n .withGraphFetched(\"items\")\n .first();\n\n return category;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/89/categoryservice_890ea46948200792f11f661d0d6b79f7.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2962",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6622,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6619,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createCategory",
"ranges": [
{
"startOffset": 319,
"endOffset": 437,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateCategory",
"ranges": [
{
"startOffset": 439,
"endOffset": 884,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCategory",
"ranges": [
{
"startOffset": 886,
"endOffset": 985,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyCategorys",
"ranges": [
{
"startOffset": 987,
"endOffset": 1167,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategoryById",
"ranges": [
{
"startOffset": 1169,
"endOffset": 1278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1280,
"endOffset": 1372,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCategory",
"ranges": [
{
"startOffset": 1409,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../../db\");\n\nconst schema = require(\"./category.schema.json\");\n\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`\n }\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Category;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhdGVnb3J5Lm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsImRiIiwic2NoZW1hIiwidGFibGVOYW1lcyIsIkNhdGVnb3J5IiwidGFibGVOYW1lIiwiY2F0ZWdvcnkiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIk1lbnUiLCJJdGVtIiwibWVudSIsInJlbGF0aW9uIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJtb2RlbENsYXNzIiwiam9pbiIsImZyb20iLCJ0byIsIml0ZW1zIiwiSGFzTWFueVJlbGF0aW9uIiwiaXRlbSIsImtuZXgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQUVBLEVBQUFBO0FBQUYsSUFBWUMsT0FBTyxDQUFDLFdBQUQsQ0FBekI7O0FBQ0EsTUFBTUMsRUFBRSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsd0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsa0NBQUQsQ0FBMUI7O0FBRUEsTUFBTUksUUFBTixTQUF1QkwsS0FBdkIsQ0FBNkI7QUFDekIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLFFBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxJQUFJLEdBQUdULE9BQU8sQ0FBQyxlQUFELENBQXBCOztBQUNBLFVBQU1VLElBQUksR0FBR1YsT0FBTyxDQUFDLG1CQUFELENBQXBCOztBQUVBLFdBQU87QUFDSFcsTUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDYyxvQkFEZDtBQUVGQyxRQUFBQSxVQUFVLEVBQUVMLElBRlY7QUFHRk0sUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsVUFEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ1EsSUFBSztBQUZyQjtBQUhKLE9BREg7QUFTSE8sTUFBQUEsS0FBSyxFQUFFO0FBQ0hOLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDb0IsZUFEYjtBQUVITCxRQUFBQSxVQUFVLEVBQUVKLElBRlQ7QUFHSEssUUFBQUEsSUFBSSxFQUFFO0FBQ0ZDLFVBQUFBLElBQUksRUFBRyxHQUFFYixVQUFVLENBQUNHLFFBQVMsS0FEM0I7QUFFRlcsVUFBQUEsRUFBRSxFQUFHLEdBQUVkLFVBQVUsQ0FBQ2lCLElBQUs7QUFGckI7QUFISDtBQVRKLEtBQVA7QUFrQkg7O0FBaEN3Qjs7QUFtQzdCckIsS0FBSyxDQUFDc0IsSUFBTixDQUFXcEIsRUFBWDtBQUVBcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCbkIsUUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IE1vZGVsIH0gPSByZXF1aXJlKFwib2JqZWN0aW9uXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9jYXRlZ29yeS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIENhdGVnb3J5IGV4dGVuZHMgTW9kZWwge1xuICAgIHN0YXRpYyBnZXQgdGFibGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGFibGVOYW1lcy5jYXRlZ29yeTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IGpzb25TY2hlbWEoKSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCByZWxhdGlvbk1hcHBpbmdzKCkge1xuICAgICAgICAvLyBJbXBvcnRpbmcgbW9kZWxzIGhlcmUgaXMgYSBvbmUgd2F5IHRvIGF2b2lkIHJlcXVpcmUgbG9vcHMuXG4gICAgICAgIGNvbnN0IE1lbnUgPSByZXF1aXJlKFwiLi4vbWVudS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgSXRlbSA9IHJlcXVpcmUoXCIuL2l0ZW0vaXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWVudToge1xuICAgICAgICAgICAgICAgIHJlbGF0aW9uOiBNb2RlbC5CZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBNZW51LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0ubWVudV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLm1lbnV9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkhhc01hbnlSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBtb2RlbENsYXNzOiBJdGVtLFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5jYXRlZ29yeX0uaWRgLFxuICAgICAgICAgICAgICAgICAgICB0bzogYCR7dGFibGVOYW1lcy5pdGVtfS5jYXRlZ29yeV9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5Nb2RlbC5rbmV4KGRiKTtcblxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeTtcbiJdfQ==",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../../db\");\nconst schema = require(\"./category.schema.json\");\nconst tableNames = require(\"../../../../constants/tableNames\");\n\nclass Category extends Model {\n static get tableName() {\n return tableNames.category;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Menu = require(\"../menu.model\");\n const Item = require(\"./item/item.model\");\n\n return {\n menu: {\n relation: Model.BelongsToOneRelation,\n modelClass: Menu,\n join: {\n from: `${tableNames.category}.menu_id`,\n to: `${tableNames.menu}.id`,\n },\n },\n items: {\n relation: Model.HasManyRelation,\n modelClass: Item,\n join: {\n from: `${tableNames.category}.id`,\n to: `${tableNames.item}.category_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Category;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/c4/categorymodel_c4d095e115e69c752e6bdb395a080788.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2963",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4639,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4636,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Category",
"ranges": [
{
"startOffset": 287,
"endOffset": 287,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 327,
"endOffset": 380,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 391,
"endOffset": 432,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 443,
"endOffset": 1066,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Menu = require(\"../menu/menu.model\");\n\nconst error = require(\"../../../utils/error\");\n\nconst {\n menu\n} = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, { ...params\n });\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query().where({ ...params\n }).withGraphFetched(\"categories\");\n return menus.map(x => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({\n id\n });\n\n if (!menu) {\n return null;\n }\n\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query().delete().where({ ...queryParams\n });\n} // async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n// }\n// =========== helpers===========\n\n\nasync function getMenu(param) {\n const menu = await Menu.query().where({ ...param\n }).withGraphFetched(\"categories\").first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const {\n id,\n name,\n company_id,\n categories\n } = menu;\n return {\n id,\n name,\n company_id,\n categories\n };\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUuc2VydmljZS5qcyJdLCJuYW1lcyI6WyJNZW51IiwicmVxdWlyZSIsImVycm9yIiwibWVudSIsIm1vZHVsZSIsImV4cG9ydHMiLCJjcmVhdGVNZW51IiwidXBkYXRlTWVudSIsImdldEFsbE1lbnUiLCJnZXRBbGxDb21wYW55TWVudXMiLCJnZXRNZW51QnlJZCIsIl9kZWxldGUiLCJwYXJhbXMiLCJxdWVyeSIsImluc2VydCIsImlkIiwidXBkYXRlZG1lbnUiLCJwYXRjaEFuZEZldGNoQnlJZCIsIm1lbnVzIiwid2hlcmUiLCJ3aXRoR3JhcGhGZXRjaGVkIiwibWFwIiwieCIsImJhc2ljRGV0YWlscyIsImdldE1lbnUiLCJxdWVyeVBhcmFtcyIsImRlbGV0ZSIsInBhcmFtIiwiZmlyc3QiLCJuYW1lIiwiY29tcGFueV9pZCIsImNhdGVnb3JpZXMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLElBQUksR0FBR0MsT0FBTyxDQUFDLG9CQUFELENBQXBCOztBQUNBLE1BQU1DLEtBQUssR0FBR0QsT0FBTyxDQUFDLHNCQUFELENBQXJCOztBQUNBLE1BQU07QUFBRUUsRUFBQUE7QUFBRixJQUFXRixPQUFPLENBQUMsK0JBQUQsQ0FBeEI7O0FBRUFHLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNiQyxFQUFBQSxVQURhO0FBRWJDLEVBQUFBLFVBRmE7QUFHYkMsRUFBQUEsVUFIYTtBQUliQyxFQUFBQSxrQkFKYTtBQUtiQyxFQUFBQSxXQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsVUFBZixDQUEwQk0sTUFBMUIsRUFBa0M7QUFDOUIsUUFBTVQsSUFBSSxHQUFHLE1BQU1ILElBQUksQ0FBQ2EsS0FBTCxHQUFhQyxNQUFiLENBQW9CRixNQUFwQixDQUFuQjtBQUNBLFNBQU9ULElBQVA7QUFDSDs7QUFFRCxlQUFlSSxVQUFmLENBQTBCUSxFQUExQixFQUE4QkgsTUFBOUIsRUFBc0M7QUFDbEMsUUFBTUksV0FBVyxHQUFHLE1BQU1oQixJQUFJLENBQUNhLEtBQUwsR0FBYUksaUJBQWIsQ0FBK0JGLEVBQS9CLEVBQW1DLEVBQ3pELEdBQUdIO0FBRHNELEdBQW5DLENBQTFCO0FBSUEsU0FBT0ksV0FBUDtBQUNIOztBQUVELGVBQWVSLFVBQWYsR0FBNEI7QUFDeEIsUUFBTVUsS0FBSyxHQUFHLE1BQU1sQixJQUFJLENBQUNhLEtBQUwsRUFBcEI7QUFDQSxTQUFPSyxLQUFQO0FBQ0g7O0FBRUQsZUFBZVQsa0JBQWYsQ0FBa0NHLE1BQWxDLEVBQTBDO0FBQ3RDLFFBQU1NLEtBQUssR0FBRyxNQUFNbEIsSUFBSSxDQUFDYSxLQUFMLEdBQ2ZNLEtBRGUsQ0FDVCxFQUFFLEdBQUdQO0FBQUwsR0FEUyxFQUVmUSxnQkFGZSxDQUVFLFlBRkYsQ0FBcEI7QUFHQSxTQUFPRixLQUFLLENBQUNHLEdBQU4sQ0FBV0MsQ0FBRCxJQUFPQyxZQUFZLENBQUNELENBQUQsQ0FBN0IsQ0FBUDtBQUNIOztBQUVELGVBQWVaLFdBQWYsQ0FBMkJLLEVBQTNCLEVBQStCO0FBQzNCLFFBQU1aLElBQUksR0FBRyxNQUFNcUIsT0FBTyxDQUFDO0FBQUVULElBQUFBO0FBQUYsR0FBRCxDQUExQjs7QUFDQSxNQUFJLENBQUNaLElBQUwsRUFBVztBQUNQLFdBQU8sSUFBUDtBQUNIOztBQUNELFNBQU9vQixZQUFZLENBQUNwQixJQUFELENBQW5CO0FBQ0g7O0FBRUQsZUFBZVEsT0FBZixDQUF1QmMsV0FBdkIsRUFBb0M7QUFDaEMsUUFBTXpCLElBQUksQ0FBQ2EsS0FBTCxHQUNEYSxNQURDLEdBRURQLEtBRkMsQ0FFSyxFQUFFLEdBQUdNO0FBQUwsR0FGTCxDQUFOO0FBR0gsQyxDQUVEO0FBQ0E7QUFDQTtBQUVBO0FBRUE7OztBQUVBLGVBQWVELE9BQWYsQ0FBdUJHLEtBQXZCLEVBQThCO0FBQzFCLFFBQU14QixJQUFJLEdBQUcsTUFBTUgsSUFBSSxDQUFDYSxLQUFMLEdBQ2RNLEtBRGMsQ0FDUixFQUFFLEdBQUdRO0FBQUwsR0FEUSxFQUVkUCxnQkFGYyxDQUVHLFlBRkgsRUFHZFEsS0FIYyxFQUFuQjtBQUlBLFNBQU96QixJQUFQO0FBQ0g7O0FBRUQsU0FBU29CLFlBQVQsQ0FBc0JwQixJQUF0QixFQUE0QjtBQUN4QixRQUFNO0FBQUVZLElBQUFBLEVBQUY7QUFBTWMsSUFBQUEsSUFBTjtBQUFZQyxJQUFBQSxVQUFaO0FBQXdCQyxJQUFBQTtBQUF4QixNQUF1QzVCLElBQTdDO0FBRUEsU0FBTztBQUFFWSxJQUFBQSxFQUFGO0FBQU1jLElBQUFBLElBQU47QUFBWUMsSUFBQUEsVUFBWjtBQUF3QkMsSUFBQUE7QUFBeEIsR0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTWVudSA9IHJlcXVpcmUoXCIuLi9tZW51L21lbnUubW9kZWxcIik7XG5jb25zdCBlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi91dGlscy9lcnJvclwiKTtcbmNvbnN0IHsgbWVudSB9ID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVNZW51LFxuICAgIHVwZGF0ZU1lbnUsXG4gICAgZ2V0QWxsTWVudSxcbiAgICBnZXRBbGxDb21wYW55TWVudXMsXG4gICAgZ2V0TWVudUJ5SWQsXG4gICAgX2RlbGV0ZSxcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1lbnUocGFyYW1zKSB7XG4gICAgY29uc3QgbWVudSA9IGF3YWl0IE1lbnUucXVlcnkoKS5pbnNlcnQocGFyYW1zKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWVudShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3QgdXBkYXRlZG1lbnUgPSBhd2FpdCBNZW51LnF1ZXJ5KCkucGF0Y2hBbmRGZXRjaEJ5SWQoaWQsIHtcbiAgICAgICAgLi4ucGFyYW1zLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVwZGF0ZWRtZW51O1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBbGxNZW51KCkge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpO1xuICAgIHJldHVybiBtZW51cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ29tcGFueU1lbnVzKHBhcmFtcykge1xuICAgIGNvbnN0IG1lbnVzID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtcyB9KVxuICAgICAgICAud2l0aEdyYXBoRmV0Y2hlZChcImNhdGVnb3JpZXNcIik7XG4gICAgcmV0dXJuIG1lbnVzLm1hcCgoeCkgPT4gYmFzaWNEZXRhaWxzKHgpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TWVudUJ5SWQoaWQpIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgZ2V0TWVudSh7IGlkIH0pO1xuICAgIGlmICghbWVudSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2ljRGV0YWlscyhtZW51KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gX2RlbGV0ZShxdWVyeVBhcmFtcykge1xuICAgIGF3YWl0IE1lbnUucXVlcnkoKVxuICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgLndoZXJlKHsgLi4ucXVlcnlQYXJhbXMgfSk7XG59XG5cbi8vIGFzeW5jIGZ1bmN0aW9uIF9zb2Z0RGVsZXRlKGlkKSB7XG4vL21hcmsgYXMgaW5hY3RpdmVcbi8vICBhd2FpdCBtZW51LnF1ZXJ5KCkuZGVsZXRlQnlJZChpZCk7XG5cbi8vIH1cblxuLy8gPT09PT09PT09PT0gaGVscGVycz09PT09PT09PT09XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1lbnUocGFyYW0pIHtcbiAgICBjb25zdCBtZW51ID0gYXdhaXQgTWVudS5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IC4uLnBhcmFtIH0pXG4gICAgICAgIC53aXRoR3JhcGhGZXRjaGVkKFwiY2F0ZWdvcmllc1wiKVxuICAgICAgICAuZmlyc3QoKTtcbiAgICByZXR1cm4gbWVudTtcbn1cblxuZnVuY3Rpb24gYmFzaWNEZXRhaWxzKG1lbnUpIHtcbiAgICBjb25zdCB7IGlkLCBuYW1lLCBjb21wYW55X2lkLCBjYXRlZ29yaWVzIH0gPSBtZW51O1xuXG4gICAgcmV0dXJuIHsgaWQsIG5hbWUsIGNvbXBhbnlfaWQsIGNhdGVnb3JpZXMgfTtcbn1cbiJdfQ==",
"originalCode": "const Menu = require(\"../menu/menu.model\");\nconst error = require(\"../../../utils/error\");\nconst { menu } = require(\"../../../constants/tableNames\");\n\nmodule.exports = {\n createMenu,\n updateMenu,\n getAllMenu,\n getAllCompanyMenus,\n getMenuById,\n _delete,\n};\n\nasync function createMenu(params) {\n const menu = await Menu.query().insert(params);\n return menu;\n}\n\nasync function updateMenu(id, params) {\n const updatedmenu = await Menu.query().patchAndFetchById(id, {\n ...params,\n });\n\n return updatedmenu;\n}\n\nasync function getAllMenu() {\n const menus = await Menu.query();\n return menus;\n}\n\nasync function getAllCompanyMenus(params) {\n const menus = await Menu.query()\n .where({ ...params })\n .withGraphFetched(\"categories\");\n return menus.map((x) => basicDetails(x));\n}\n\nasync function getMenuById(id) {\n const menu = await getMenu({ id });\n if (!menu) {\n return null;\n }\n return basicDetails(menu);\n}\n\nasync function _delete(queryParams) {\n await Menu.query()\n .delete()\n .where({ ...queryParams });\n}\n\n// async function _softDelete(id) {\n//mark as inactive\n// await menu.query().deleteById(id);\n\n// }\n\n// =========== helpers===========\n\nasync function getMenu(param) {\n const menu = await Menu.query()\n .where({ ...param })\n .withGraphFetched(\"categories\")\n .first();\n return menu;\n}\n\nfunction basicDetails(menu) {\n const { id, name, company_id, categories } = menu;\n\n return { id, name, company_id, categories };\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/6e/menuservice_6e9dfc28daaf137278aca6ef9d6dc9d8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2964",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 6594,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 6591,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createMenu",
"ranges": [
{
"startOffset": 356,
"endOffset": 458,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateMenu",
"ranges": [
{
"startOffset": 460,
"endOffset": 604,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllMenu",
"ranges": [
{
"startOffset": 606,
"endOffset": 689,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getAllCompanyMenus",
"ranges": [
{
"startOffset": 691,
"endOffset": 868,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenuById",
"ranges": [
{
"startOffset": 870,
"endOffset": 1015,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "_delete",
"ranges": [
{
"startOffset": 1017,
"endOffset": 1115,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getMenu",
"ranges": [
{
"startOffset": 1251,
"endOffset": 1395,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "basicDetails",
"ranges": [
{
"startOffset": 1397,
"endOffset": 1564,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./menu.schema.json\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`\n }\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Menu;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1lbnUubW9kZWwuanMiXSwibmFtZXMiOlsiTW9kZWwiLCJyZXF1aXJlIiwiZGIiLCJzY2hlbWEiLCJ0YWJsZU5hbWVzIiwiTWVudSIsInRhYmxlTmFtZSIsIm1lbnUiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJDYXRlZ29yeSIsImNvbXBhbnkiLCJyZWxhdGlvbiIsIkJlbG9uZ3NUb09uZVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJjYXRlZ29yaWVzIiwiSGFzTWFueVJlbGF0aW9uIiwiY2F0ZWdvcnkiLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLEVBQUUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUUsTUFBTSxHQUFHRixPQUFPLENBQUMsb0JBQUQsQ0FBdEI7O0FBQ0EsTUFBTUcsVUFBVSxHQUFHSCxPQUFPLENBQUMsK0JBQUQsQ0FBMUI7O0FBRUEsTUFBTUksSUFBTixTQUFtQkwsS0FBbkIsQ0FBeUI7QUFDckIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPRixVQUFVLENBQUNHLElBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPTCxNQUFQO0FBQ0g7O0FBRUQsYUFBV00sZ0JBQVgsR0FBOEI7QUFDMUI7QUFDQSxVQUFNQyxPQUFPLEdBQUdULE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFDQSxVQUFNVSxRQUFRLEdBQUdWLE9BQU8sQ0FBQywyQkFBRCxDQUF4Qjs7QUFFQSxXQUFPO0FBQ0hXLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ2Msb0JBRFg7QUFFTEMsUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLGFBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNRLE9BQVE7QUFGeEI7QUFIRCxPQUROO0FBU0hPLE1BQUFBLFVBQVUsRUFBRTtBQUNSTixRQUFBQSxRQUFRLEVBQUViLEtBQUssQ0FBQ29CLGVBRFI7QUFFUkwsUUFBQUEsVUFBVSxFQUFFSixRQUZKO0FBR1JLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWIsVUFBVSxDQUFDRyxJQUFLLEtBRHZCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFZCxVQUFVLENBQUNpQixRQUFTO0FBRnpCO0FBSEU7QUFUVCxLQUFQO0FBa0JIOztBQWhDb0I7O0FBbUN6QnJCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3BCLEVBQVg7QUFFQXFCLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQm5CLElBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBNb2RlbCB9ID0gcmVxdWlyZShcIm9iamVjdGlvblwiKTtcbmNvbnN0IGRiID0gcmVxdWlyZShcIi4uLy4uLy4uL2RiXCIpO1xuY29uc3Qgc2NoZW1hID0gcmVxdWlyZShcIi4vbWVudS5zY2hlbWEuanNvblwiKTtcbmNvbnN0IHRhYmxlTmFtZXMgPSByZXF1aXJlKFwiLi4vLi4vLi4vY29uc3RhbnRzL3RhYmxlTmFtZXNcIik7XG5cbmNsYXNzIE1lbnUgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm1lbnU7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBqc29uU2NoZW1hKCkge1xuICAgICAgICByZXR1cm4gc2NoZW1hO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQgcmVsYXRpb25NYXBwaW5ncygpIHtcbiAgICAgICAgLy8gSW1wb3J0aW5nIG1vZGVscyBoZXJlIGlzIGEgb25lIHdheSB0byBhdm9pZCByZXF1aXJlIGxvb3BzLlxuICAgICAgICBjb25zdCBDb21wYW55ID0gcmVxdWlyZShcIi4uL2NvbXBhbnkubW9kZWxcIik7XG4gICAgICAgIGNvbnN0IENhdGVnb3J5ID0gcmVxdWlyZShcIi4vY2F0ZWdvcnkvY2F0ZWdvcnkubW9kZWxcIik7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBhbnk6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuQmVsb25nc1RvT25lUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgbW9kZWxDbGFzczogQ29tcGFueSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMubWVudX0uY29tcGFueV9pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNvbXBhbnl9LmlkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENhdGVnb3J5LFxuICAgICAgICAgICAgICAgIGpvaW46IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogYCR7dGFibGVOYW1lcy5tZW51fS5pZGAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBgJHt0YWJsZU5hbWVzLmNhdGVnb3J5fS5tZW51X2lkYCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbk1vZGVsLmtuZXgoZGIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1lbnU7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./menu.schema.json\");\nconst tableNames = require(\"../../../constants/tableNames\");\n\nclass Menu extends Model {\n static get tableName() {\n return tableNames.menu;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n // Importing models here is a one way to avoid require loops.\n const Company = require(\"../company.model\");\n const Category = require(\"./category/category.model\");\n\n return {\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.menu}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n categories: {\n relation: Model.HasManyRelation,\n modelClass: Category,\n join: {\n from: `${tableNames.menu}.id`,\n to: `${tableNames.category}.menu_id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Menu;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/3e/menumodel_3e585995a7771ed1d7b6448514c83496.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2965",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4668,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4665,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Menu",
"ranges": [
{
"startOffset": 277,
"endOffset": 277,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 313,
"endOffset": 362,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 373,
"endOffset": 414,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 425,
"endOffset": 1079,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema\n} = require(\"./order.validators\");\n\nconst {\n auth: Auth,\n isOwner\n} = require(\"../../../_middlewares/auth\");\n\nconst Role = require(\"../../../utils/role\");\n\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.use(\"/:order_id/orderItem\", OrderItem); // update an order item customer aka update cart item\n\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\"/:id\", updateOrderSchema, Auth([Role.staff, Role.owner]), updateOrder);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\"/company-orders\", companyOrderSchema, Auth([Role.owner, Role.staff]), isOwner(), getCompanyOrders);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity)\n };\n orderService.createOrder(payload).then(orderItem => res.json({\n message: `${orderItem.item} has been added to the cart`\n })).catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService.updateOrder(req.params.id, req.user, req.body).then(order => res.json(order)).catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService.getOrderById(id).then(order => order ? res.json(order) : res.sendStatus(404)).catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService.getOwnOrders(req.user.id).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n params.company_id = req.params.company_id;\n orderService.getCompanyOrders(params).then(orders => orders.length > 0 ? orders : res.sendStatus(404)).catch(next);\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnJvdXRlcy5qcyJdLCJuYW1lcyI6WyJleHByZXNzIiwicmVxdWlyZSIsImNyZWF0ZU9yZGVyU2NoZW1hIiwidXBkYXRlT3JkZXJTY2hlbWEiLCJjb21wYW55T3JkZXJTY2hlbWEiLCJhdXRoIiwiQXV0aCIsImlzT3duZXIiLCJSb2xlIiwib3JkZXJTZXJ2aWNlIiwiT3JkZXJJdGVtIiwicm91dGVyIiwiUm91dGVyIiwibWVyZ2VQYXJhbXMiLCJ1c2UiLCJwb3N0IiwiY3JlYXRlT3JkZXIiLCJwYXRjaCIsInN0YWZmIiwib3duZXIiLCJ1cGRhdGVPcmRlciIsImdldCIsImdldE9yZGVyQnlJZCIsImN1c3RvbWVyIiwiZ2V0T3duT3JkZXJzIiwiZ2V0Q29tcGFueU9yZGVycyIsInJlcSIsInJlcyIsIm5leHQiLCJwYXlsb2FkIiwiY2FydF9pZCIsImJvZHkiLCJjb21wYW55X2lkIiwicGFyc2VJbnQiLCJwYXJhbXMiLCJwcm9kdWN0X2lkIiwicXVhbnRpdHkiLCJ0aGVuIiwib3JkZXJJdGVtIiwianNvbiIsIm1lc3NhZ2UiLCJpdGVtIiwiY2F0Y2giLCJpZCIsInVzZXIiLCJvcmRlciIsInNlbmRTdGF0dXMiLCJvcmRlcnMiLCJsZW5ndGgiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFELENBQXZCOztBQUNBLE1BQU07QUFDRkMsRUFBQUEsaUJBREU7QUFFRkMsRUFBQUEsaUJBRkU7QUFHRkMsRUFBQUE7QUFIRSxJQUlGSCxPQUFPLENBQUMsb0JBQUQsQ0FKWDs7QUFLQSxNQUFNO0FBQUVJLEVBQUFBLElBQUksRUFBRUMsSUFBUjtBQUFjQyxFQUFBQTtBQUFkLElBQTBCTixPQUFPLENBQUMsNEJBQUQsQ0FBdkM7O0FBQ0EsTUFBTU8sSUFBSSxHQUFHUCxPQUFPLENBQUMscUJBQUQsQ0FBcEI7O0FBQ0EsTUFBTVEsWUFBWSxHQUFHUixPQUFPLENBQUMsaUJBQUQsQ0FBNUI7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QixJQUFKLENBQVNELEVBRDNCLEVBRUtOLElBRkwsQ0FFV1UsTUFBRCxJQUFhQSxNQUFNLENBQUNDLE1BQVAsR0FBZ0IsQ0FBaEIsR0FBb0JELE1BQXBCLEdBQTZCcEIsR0FBRyxDQUFDbUIsVUFBSixDQUFlLEdBQWYsQ0FGcEQsRUFHS0osS0FITCxDQUdXZCxJQUhYO0FBSUg7O0FBRUQsU0FBU0gsZ0JBQVQsQ0FBMEJDLEdBQTFCLEVBQStCQyxHQUEvQixFQUFvQ0MsSUFBcEMsRUFBMEM7QUFDdEM7QUFFQU0sRUFBQUEsTUFBTSxDQUFDRixVQUFQLEdBQW9CTixHQUFHLENBQUNRLE1BQUosQ0FBV0YsVUFBL0I7QUFDQXZCLEVBQUFBLFlBQVksQ0FDUGdCLGdCQURMLENBQ3NCUyxNQUR0QixFQUVLRyxJQUZMLENBRVdVLE1BQUQsSUFBYUEsTUFBTSxDQUFDQyxNQUFQLEdBQWdCLENBQWhCLEdBQW9CRCxNQUFwQixHQUE2QnBCLEdBQUcsQ0FBQ21CLFVBQUosQ0FBZSxHQUFmLENBRnBELEVBR0tKLEtBSEwsQ0FHV2QsSUFIWDtBQUlIOztBQUNEcUIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCdkMsTUFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHByZXNzID0gcmVxdWlyZShcImV4cHJlc3NcIik7XG5jb25zdCB7XG4gICAgY3JlYXRlT3JkZXJTY2hlbWEsXG4gICAgdXBkYXRlT3JkZXJTY2hlbWEsXG4gICAgY29tcGFueU9yZGVyU2NoZW1hLFxufSA9IHJlcXVpcmUoXCIuL29yZGVyLnZhbGlkYXRvcnNcIik7XG5jb25zdCB7IGF1dGg6IEF1dGgsIGlzT3duZXIgfSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9fbWlkZGxld2FyZXMvYXV0aFwiKTtcbmNvbnN0IFJvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vdXRpbHMvcm9sZVwiKTtcbmNvbnN0IG9yZGVyU2VydmljZSA9IHJlcXVpcmUoXCIuL29yZGVyLnNlcnZpY2VcIik7XG5cbmNvbnN0IE9yZGVySXRlbSA9IHJlcXVpcmUoXCIuL29yZGVySXRlbS9vcmRlckl0ZW0ucm91dGVzXCIpO1xuXG5jb25zdCByb3V0ZXIgPSBleHByZXNzLlJvdXRlcih7XG4gICAgbWVyZ2VQYXJhbXM6IHRydWUsXG59KTtcblxucm91dGVyLnVzZShcIi86b3JkZXJfaWQvb3JkZXJJdGVtXCIsIE9yZGVySXRlbSk7XG5cbi8vIHVwZGF0ZSBhbiBvcmRlciBpdGVtIGN1c3RvbWVyIGFrYSB1cGRhdGUgY2FydCBpdGVtXG5yb3V0ZXIucG9zdChcIi9cIiwgY3JlYXRlT3JkZXJTY2hlbWEsIGNyZWF0ZU9yZGVyKTtcbnJvdXRlci5wYXRjaChcbiAgICBcIi86aWRcIixcbiAgICB1cGRhdGVPcmRlclNjaGVtYSxcbiAgICBBdXRoKFtSb2xlLnN0YWZmLCBSb2xlLm93bmVyXSksXG4gICAgdXBkYXRlT3JkZXJcbik7XG5yb3V0ZXIuZ2V0KFwiLzppZFwiLCBBdXRoKCksIGdldE9yZGVyQnlJZCk7XG5yb3V0ZXIuZ2V0KFwiLzppZC9teS1vcmRlcnNcIiwgQXV0aChSb2xlLmN1c3RvbWVyKSwgZ2V0T3duT3JkZXJzKTtcbnJvdXRlci5nZXQoXG4gICAgXCIvY29tcGFueS1vcmRlcnNcIixcbiAgICBjb21wYW55T3JkZXJTY2hlbWEsXG4gICAgQXV0aChbUm9sZS5vd25lciwgUm9sZS5zdGFmZl0pLFxuICAgIGlzT3duZXIoKSxcbiAgICBnZXRDb21wYW55T3JkZXJzXG4pO1xuXG5mdW5jdGlvbiBjcmVhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICAgIGNhcnRfaWQ6IHJlcS5ib2R5LmNhcnRfaWQsXG4gICAgICAgIGNvbXBhbnlfaWQ6IHBhcnNlSW50KHJlcS5wYXJhbXMuY29tcGFueV9pZCksXG4gICAgICAgIHByb2R1Y3RfaWQ6IHBhcnNlSW50KHJlcS5ib2R5LnByb2R1Y3RfaWQpLFxuICAgICAgICBxdWFudGl0eTogcGFyc2VJbnQocmVxLmJvZHkucXVhbnRpdHkpLFxuICAgIH07XG5cbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZU9yZGVyKHBheWxvYWQpXG4gICAgICAgIC50aGVuKChvcmRlckl0ZW0pID0+XG4gICAgICAgICAgICByZXMuanNvbih7XG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYCR7b3JkZXJJdGVtLml0ZW19IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBjYXJ0YCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPcmRlcihyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZVxuICAgICAgICAudXBkYXRlT3JkZXIocmVxLnBhcmFtcy5pZCwgcmVxLnVzZXIsIHJlcS5ib2R5KVxuICAgICAgICAudGhlbigob3JkZXIpID0+IHJlcy5qc29uKG9yZGVyKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPcmRlckJ5SWQocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE9yZGVyQnlJZChpZClcbiAgICAgICAgLnRoZW4oKG9yZGVyKSA9PiAob3JkZXIgPyByZXMuanNvbihvcmRlcikgOiByZXMuc2VuZFN0YXR1cyg0MDQpKSlcbiAgICAgICAgLmNhdGNoKG5leHQpO1xufVxuXG5mdW5jdGlvbiBnZXRPd25PcmRlcnMocmVxLCByZXMsIG5leHQpIHtcbiAgICBvcmRlclNlcnZpY2VcbiAgICAgICAgLmdldE93bk9yZGVycyhyZXEudXNlci5pZClcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29tcGFueU9yZGVycyhyZXEsIHJlcywgbmV4dCkge1xuICAgIC8vIFRPRE8gdG8gdXNlIHF1ZXJ5IHBhcmFtc1xuXG4gICAgcGFyYW1zLmNvbXBhbnlfaWQgPSByZXEucGFyYW1zLmNvbXBhbnlfaWQ7XG4gICAgb3JkZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRDb21wYW55T3JkZXJzKHBhcmFtcylcbiAgICAgICAgLnRoZW4oKG9yZGVycykgPT4gKG9yZGVycy5sZW5ndGggPiAwID8gb3JkZXJzIDogcmVzLnNlbmRTdGF0dXMoNDA0KSkpXG4gICAgICAgIC5jYXRjaChuZXh0KTtcbn1cbm1vZHVsZS5leHBvcnRzID0gcm91dGVyO1xuIl19",
"originalCode": "const express = require(\"express\");\nconst {\n createOrderSchema,\n updateOrderSchema,\n companyOrderSchema,\n} = require(\"./order.validators\");\nconst { auth: Auth, isOwner } = require(\"../../../_middlewares/auth\");\nconst Role = require(\"../../../utils/role\");\nconst orderService = require(\"./order.service\");\n\nconst OrderItem = require(\"./orderItem/orderItem.routes\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.use(\"/:order_id/orderItem\", OrderItem);\n\n// update an order item customer aka update cart item\nrouter.post(\"/\", createOrderSchema, createOrder);\nrouter.patch(\n \"/:id\",\n updateOrderSchema,\n Auth([Role.staff, Role.owner]),\n updateOrder\n);\nrouter.get(\"/:id\", Auth(), getOrderById);\nrouter.get(\"/:id/my-orders\", Auth(Role.customer), getOwnOrders);\nrouter.get(\n \"/company-orders\",\n companyOrderSchema,\n Auth([Role.owner, Role.staff]),\n isOwner(),\n getCompanyOrders\n);\n\nfunction createOrder(req, res, next) {\n const payload = {\n cart_id: req.body.cart_id,\n company_id: parseInt(req.params.company_id),\n product_id: parseInt(req.body.product_id),\n quantity: parseInt(req.body.quantity),\n };\n\n orderService\n .createOrder(payload)\n .then((orderItem) =>\n res.json({\n message: `${orderItem.item} has been added to the cart`,\n })\n )\n .catch(next);\n}\n\nfunction updateOrder(req, res, next) {\n orderService\n .updateOrder(req.params.id, req.user, req.body)\n .then((order) => res.json(order))\n .catch(next);\n}\n\nfunction getOrderById(req, res, next) {\n orderService\n .getOrderById(id)\n .then((order) => (order ? res.json(order) : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getOwnOrders(req, res, next) {\n orderService\n .getOwnOrders(req.user.id)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\n\nfunction getCompanyOrders(req, res, next) {\n // TODO to use query params\n\n params.company_id = req.params.company_id;\n orderService\n .getCompanyOrders(params)\n .then((orders) => (orders.length > 0 ? orders : res.sendStatus(404)))\n .catch(next);\n}\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/08/orderroutes_089ea1023d544595b49b0cc5a337bfcb.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2966",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 9628,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 9625,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 979,
"endOffset": 1357,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1359,
"endOffset": 1505,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1507,
"endOffset": 1654,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1656,
"endOffset": 1816,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1818,
"endOffset": 2056,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Joi = require(\"joi\");\n\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required()\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\")\n });\n validateRequest(req, next, schema);\n};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiSm9pIiwicmVxdWlyZSIsInZhbGlkYXRlUmVxdWVzdCIsImV4cG9ydHMiLCJjcmVhdGVPcmRlclNjaGVtYSIsInJlcSIsInJlcyIsIm5leHQiLCJzY2hlbWEiLCJvYmplY3QiLCJwcm9kdWN0X2lkIiwibnVtYmVyIiwicmVxdWlyZWQiLCJxdWFudGl0eSIsImNhcnRfaWQiLCJzdHJpbmciLCJ1cGRhdGVPcmRlclNjaGVtYSIsIm9yZGVyX3N0YXR1cyIsImVtcHR5IiwicHVyY2hhc2Vfc3RhdHVzIiwiY29tcGFueU9yZGVyU2NoZW1hIiwiY3VzdG9tZXJfaWQiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLEdBQUcsR0FBR0MsT0FBTyxDQUFDLEtBQUQsQ0FBbkI7O0FBQ0EsTUFBTUMsZUFBZSxHQUFHRCxPQUFPLENBQUMsdUNBQUQsQ0FBL0I7O0FBRUFFLE9BQU8sQ0FBQ0MsaUJBQVIsR0FBNEIsQ0FBQ0MsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDNUMsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QkMsSUFBQUEsVUFBVSxFQUFFVixHQUFHLENBQUNXLE1BQUosR0FBYUMsUUFBYixFQURVO0FBRXRCQyxJQUFBQSxRQUFRLEVBQUViLEdBQUcsQ0FBQ1csTUFBSixHQUFhQyxRQUFiLEVBRlk7QUFHdEJFLElBQUFBLE9BQU8sRUFBRWQsR0FBRyxDQUFDZSxNQUFKLEdBQWFILFFBQWI7QUFIYSxHQUFYLENBQWY7QUFLQVYsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDYSxpQkFBUixHQUE0QixDQUFDWCxHQUFELEVBQU1DLEdBQU4sRUFBV0MsSUFBWCxLQUFvQjtBQUM1QyxRQUFNQyxNQUFNLEdBQUdSLEdBQUcsQ0FBQ1MsTUFBSixDQUFXO0FBQ3RCUSxJQUFBQSxZQUFZLEVBQUVqQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQixDQURRO0FBRXRCQyxJQUFBQSxlQUFlLEVBQUVuQixHQUFHLENBQUNlLE1BQUosR0FBYUcsS0FBYixDQUFtQixFQUFuQjtBQUZLLEdBQVgsQ0FBZjtBQUtBaEIsRUFBQUEsZUFBZSxDQUFDRyxHQUFELEVBQU1FLElBQU4sRUFBWUMsTUFBWixDQUFmO0FBQ0gsQ0FQRDs7QUFTQUwsT0FBTyxDQUFDaUIsa0JBQVIsR0FBNkIsQ0FBQ2YsR0FBRCxFQUFNQyxHQUFOLEVBQVdDLElBQVgsS0FBb0I7QUFDN0MsUUFBTUMsTUFBTSxHQUFHUixHQUFHLENBQUNTLE1BQUosQ0FBVztBQUN0QlksSUFBQUEsV0FBVyxFQUFFckIsR0FBRyxDQUFDVyxNQUFKLEdBQWFPLEtBQWIsRUFEUztBQUV0QkQsSUFBQUEsWUFBWSxFQUFFakIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkIsQ0FGUTtBQUd0QkMsSUFBQUEsZUFBZSxFQUFFbkIsR0FBRyxDQUFDZSxNQUFKLEdBQWFHLEtBQWIsQ0FBbUIsRUFBbkI7QUFISyxHQUFYLENBQWY7QUFNQWhCLEVBQUFBLGVBQWUsQ0FBQ0csR0FBRCxFQUFNRSxJQUFOLEVBQVlDLE1BQVosQ0FBZjtBQUNILENBUkQiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBKb2kgPSByZXF1aXJlKFwiam9pXCIpO1xuY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0gcmVxdWlyZShcIi4uLy4uLy4uL19taWRkbGV3YXJlcy92YWxpZGF0ZVJlcXVlc3RcIik7XG5cbmV4cG9ydHMuY3JlYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgcHJvZHVjdF9pZDogSm9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgICAgIHF1YW50aXR5OiBKb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY2FydF9pZDogSm9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgfSk7XG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMudXBkYXRlT3JkZXJTY2hlbWEgPSAocmVxLCByZXMsIG5leHQpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSBKb2kub2JqZWN0KHtcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG5cbmV4cG9ydHMuY29tcGFueU9yZGVyU2NoZW1hID0gKHJlcSwgcmVzLCBuZXh0KSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gSm9pLm9iamVjdCh7XG4gICAgICAgIGN1c3RvbWVyX2lkOiBKb2kubnVtYmVyKCkuZW1wdHkoKSxcbiAgICAgICAgb3JkZXJfc3RhdHVzOiBKb2kuc3RyaW5nKCkuZW1wdHkoXCJcIiksXG4gICAgICAgIHB1cmNoYXNlX3N0YXR1czogSm9pLnN0cmluZygpLmVtcHR5KFwiXCIpLFxuICAgIH0pO1xuXG4gICAgdmFsaWRhdGVSZXF1ZXN0KHJlcSwgbmV4dCwgc2NoZW1hKTtcbn07XG4iXX0=",
"originalCode": "const Joi = require(\"joi\");\nconst validateRequest = require(\"../../../_middlewares/validateRequest\");\n\nexports.createOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n product_id: Joi.number().required(),\n quantity: Joi.number().required(),\n cart_id: Joi.string().required(),\n });\n validateRequest(req, next, schema);\n};\n\nexports.updateOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n\nexports.companyOrderSchema = (req, res, next) => {\n const schema = Joi.object({\n customer_id: Joi.number().empty(),\n order_status: Joi.string().empty(\"\"),\n purchase_status: Joi.string().empty(\"\"),\n });\n\n validateRequest(req, next, schema);\n};\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/0c/ordervalidators_0cc6fc00846f810b841a468b55aaa5b8.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2967",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4202,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4199,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.createOrderSchema",
"ranges": [
{
"startOffset": 221,
"endOffset": 435,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.updateOrderSchema",
"ranges": [
{
"startOffset": 466,
"endOffset": 649,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>.exports.companyOrderSchema",
"ranges": [
{
"startOffset": 681,
"endOffset": 903,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id); // insert the item to the order item table\n\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity\n });\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n let orderItem; // check item quantity\n\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order.$relatedQuery(\"items\").delete().where({\n item_id: params.item.product_id\n });\n return orderItem;\n }\n\n orderItem = await order.$relatedQuery(\"items\").patch({\n quantity: params.item.quantity\n }).where({\n item_id: params.item.product_id\n }).returning(\"*\");\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n } // aka update order table\n\n\n order = await Order.query().patchAndFetchById(id, params);\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query().where({\n cart_id: id\n }).orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n} // =======================helpers==========================\n\n\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n let order = await Order.query().where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\"\n }).first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\"\n });\n }\n\n return order;\n} // =========== helpers===========\n\n\nasync function getOrder(id) {\n const order = await Order.query().where({\n cart_id: id\n });\n return order;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLnNlcnZpY2UuanMiXSwibmFtZXMiOlsiT3JkZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsImNyZWF0ZU9yZGVyIiwidXBkYXRlT3JkZXJJdGVtIiwidXBkYXRlT3JkZXIiLCJnZXRPcmRlckJ5SWQiLCJnZXRPd25PcmRlcnMiLCJnZXRDb21wYW55T3JkZXJzIiwicGFyYW1zIiwib3JkZXIiLCJnZXRfb3JfY3JlYXRlIiwiY2FydF9pZCIsImNvbXBhbnlfaWQiLCJvcmRlckl0ZW0iLCIkcmVsYXRlZFF1ZXJ5IiwiaW5zZXJ0IiwiaXRlbV9pZCIsInByb2R1Y3RfaWQiLCJpZCIsInF1YW50aXR5IiwiZ2V0T3JkZXIiLCJpdGVtIiwiZGVsZXRlIiwid2hlcmUiLCJwYXRjaCIsInJldHVybmluZyIsInVzZXIiLCJ3aXRoR3JhcGhGZXRjaGVkIiwiY29tcGFueSIsImVycm9yIiwiRXJyb3IiLCJxdWVyeSIsInBhdGNoQW5kRmV0Y2hCeUlkIiwib3JkZXJzIiwib3JkZXJCeSIsIm9yZGVyX3N0YXR1cyIsImZpcnN0IiwicHVyY2hhc2Vfc3RhdHVzIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxlQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUI7QUFDYkMsRUFBQUEsV0FEYTtBQUViQyxFQUFBQSxlQUZhO0FBR2JDLEVBQUFBLFdBSGE7QUFJYkMsRUFBQUEsWUFKYTtBQUtiQyxFQUFBQSxZQUxhO0FBTWJDLEVBQUFBO0FBTmEsQ0FBakI7O0FBU0EsZUFBZUwsV0FBZixDQUEyQk0sTUFBM0IsRUFBbUM7QUFDL0IsUUFBTUMsS0FBSyxHQUFHLE1BQU1DLGFBQWEsQ0FBQ0YsTUFBTSxDQUFDRyxPQUFSLEVBQWlCSCxNQUFNLENBQUNJLFVBQXhCLENBQWpDLENBRCtCLENBRy9COztBQUNBLFFBQU1DLFNBQVMsR0FBR0osS0FBSyxDQUFDSyxhQUFOLENBQW9CLE9BQXBCLEVBQTZCQyxNQUE3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O0FBQ0haLElBQUFBLE9BQU8sRUFBRU8sRUFETjtBQUVIaUIsSUFBQUEsWUFBWSxFQUFFLFNBQVM7QUFGcEIsR0FETyxFQUtiQyxLQUxhLEVBQWxCOztBQU9BLE1BQUksQ0FBQzNCLEtBQUwsRUFBWTtBQUNSO0FBQ0FBLElBQUFBLEtBQUssR0FBRyxNQUFNWCxLQUFLLENBQUNpQyxLQUFOLEdBQWNoQixNQUFkLENBQXFCO0FBQy9CSixNQUFBQSxPQUFPLEVBQUVPLEVBRHNCO0FBRS9CTixNQUFBQSxVQUYrQjtBQUcvQnVCLE1BQUFBLFlBQVksRUFBRSxTQUFTLFVBSFE7QUFJL0JFLE1BQUFBLGVBQWUsRUFBRTtBQUpjLEtBQXJCLENBQWQ7QUFNSDs7QUFFRCxTQUFPNUIsS0FBUDtBQUNILEMsQ0FFRDs7O0FBRUEsZUFBZVcsUUFBZixDQUF3QkYsRUFBeEIsRUFBNEI7QUFDeEIsUUFBTVQsS0FBSyxHQUFHLE1BQU1YLEtBQUssQ0FBQ2lDLEtBQU4sR0FBY1IsS0FBZCxDQUFvQjtBQUFFWixJQUFBQSxPQUFPLEVBQUVPO0FBQVgsR0FBcEIsQ0FBcEI7QUFDQSxTQUFPVCxLQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPcmRlciA9IHJlcXVpcmUoXCIuL29yZGVyLm1vZGVsXCIpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVPcmRlcixcbiAgICB1cGRhdGVPcmRlckl0ZW0sXG4gICAgdXBkYXRlT3JkZXIsXG4gICAgZ2V0T3JkZXJCeUlkLFxuICAgIGdldE93bk9yZGVycyxcbiAgICBnZXRDb21wYW55T3JkZXJzLFxufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlT3JkZXIocGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRfb3JfY3JlYXRlKHBhcmFtcy5jYXJ0X2lkLCBwYXJhbXMuY29tcGFueV9pZCk7XG5cbiAgICAvLyBpbnNlcnQgdGhlIGl0ZW0gdG8gdGhlIG9yZGVyIGl0ZW0gdGFibGVcbiAgICBjb25zdCBvcmRlckl0ZW0gPSBvcmRlci4kcmVsYXRlZFF1ZXJ5KFwiaXRlbXNcIikuaW5zZXJ0KHtcbiAgICAgICAgaXRlbV9pZDogcGFyYW1zLnByb2R1Y3RfaWQsXG4gICAgICAgIG9yZGVyOiBvcmRlci5pZCxcbiAgICAgICAgcXVhbnRpdHk6IHBhcmFtcy5xdWFudGl0eSxcbiAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShpZCwgcGFyYW1zKSB7XG4gICAgY29uc3Qgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCk7XG5cbiAgICBsZXQgb3JkZXJJdGVtO1xuICAgIC8vIGNoZWNrIGl0ZW0gcXVhbnRpdHlcbiAgICBpZiAocGFyYW1zLml0ZW0ucXVhbnRpdHkgPD0gMCkge1xuICAgICAgICAvLyByZW1vdmUgZnJvbSBjYXJ0XG4gICAgICAgIG9yZGVySXRlbSA9IGF3YWl0IG9yZGVyXG4gICAgICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgICAgICAuZGVsZXRlKClcbiAgICAgICAgICAgIC53aGVyZSh7IGl0ZW1faWQ6IHBhcmFtcy5pdGVtLnByb2R1Y3RfaWQgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9yZGVySXRlbTtcbiAgICB9XG5cbiAgICBvcmRlckl0ZW0gPSBhd2FpdCBvcmRlclxuICAgICAgICAuJHJlbGF0ZWRRdWVyeShcIml0ZW1zXCIpXG4gICAgICAgIC5wYXRjaCh7XG4gICAgICAgICAgICBxdWFudGl0eTogcGFyYW1zLml0ZW0ucXVhbnRpdHksXG4gICAgICAgIH0pXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBpdGVtX2lkOiBwYXJhbXMuaXRlbS5wcm9kdWN0X2lkLFxuICAgICAgICB9KVxuICAgICAgICAucmV0dXJuaW5nKFwiKlwiKTtcblxuICAgIHJldHVybiBvcmRlckl0ZW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU9yZGVyKGlkLCB1c2VyLCBwYXJhbXMpIHtcbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBnZXRPcmRlcihpZCkud2l0aEdyYXBoRmV0Y2hlZChcImNvbXBhbnlcIik7XG5cbiAgICBpZiAob3JkZXIuY29tcGFueS5pZCAhPT0gdXNlci5jb21wYW55LmlkKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFwiVW5hdGhvcml6ZWRcIik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgICAvLyBha2EgdXBkYXRlIG9yZGVyIHRhYmxlXG4gICAgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpLnBhdGNoQW5kRmV0Y2hCeUlkKGlkLCBwYXJhbXMpO1xuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPcmRlckJ5SWQoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IGdldE9yZGVyKGlkKS53aXRoR3JhcGhGZXRjaGVkKFwiaXRlbXNcIik7XG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRPd25PcmRlcnMoaWQpIHtcbiAgICBjb25zdCBvcmRlcnMgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7IGNhcnRfaWQ6IGlkIH0pXG4gICAgICAgIC5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb21wYW55T3JkZXJzKHBhcmFtcykge1xuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUocGFyYW1zKS5vcmRlckJ5KFwiY3JlYXRlZF9hdFwiKTtcbiAgICByZXR1cm4gb3JkZXJzO1xufVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1oZWxwZXJzPT09PT09PT09PT09PT09PT09PT09PT09PT1cbmFzeW5jIGZ1bmN0aW9uIGdldF9vcl9jcmVhdGUoaWQsIGNvbXBhbnlfaWQpIHtcbiAgICAvLyBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBjdXN0b21lciBvcmRlclxuICAgIC8vIGlmIGl0IGV4aXN0cyBhZGQgdGhlIG5ldyBpdGVtcyBvbiBpdFxuICAgIC8vIGlmIGl0IGRvZXMgbm90IGV4aXN0IGl0IGNyZWF0ZXMgb25lXG5cbiAgICBsZXQgb3JkZXIgPSBhd2FpdCBPcmRlci5xdWVyeSgpXG4gICAgICAgIC53aGVyZSh7XG4gICAgICAgICAgICBjYXJ0X2lkOiBpZCxcbiAgICAgICAgICAgIG9yZGVyX3N0YXR1czogXCJOZXdcIiB8fCBcIkNoZWNrb3V0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5maXJzdCgpO1xuXG4gICAgaWYgKCFvcmRlcikge1xuICAgICAgICAvLyBjcmVhdGUgb25lXG4gICAgICAgIG9yZGVyID0gYXdhaXQgT3JkZXIucXVlcnkoKS5pbnNlcnQoe1xuICAgICAgICAgICAgY2FydF9pZDogaWQsXG4gICAgICAgICAgICBjb21wYW55X2lkLFxuICAgICAgICAgICAgb3JkZXJfc3RhdHVzOiBcIk5ld1wiIHx8IFwiQ2hlY2tvdXRcIixcbiAgICAgICAgICAgIHB1cmNoYXNlX3N0YXR1czogXCJ1bnBhaWRcIixcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9yZGVyO1xufVxuXG4vLyA9PT09PT09PT09PSBoZWxwZXJzPT09PT09PT09PT1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0T3JkZXIoaWQpIHtcbiAgICBjb25zdCBvcmRlciA9IGF3YWl0IE9yZGVyLnF1ZXJ5KCkud2hlcmUoeyBjYXJ0X2lkOiBpZCB9KTtcbiAgICByZXR1cm4gb3JkZXI7XG59XG4iXX0=",
"originalCode": "const Order = require(\"./order.model\");\n\nmodule.exports = {\n createOrder,\n updateOrderItem,\n updateOrder,\n getOrderById,\n getOwnOrders,\n getCompanyOrders,\n};\n\nasync function createOrder(params) {\n const order = await get_or_create(params.cart_id, params.company_id);\n\n // insert the item to the order item table\n const orderItem = order.$relatedQuery(\"items\").insert({\n item_id: params.product_id,\n order: order.id,\n quantity: params.quantity,\n });\n\n return orderItem;\n}\n\nasync function updateOrderItem(id, params) {\n const order = await getOrder(id);\n\n let orderItem;\n // check item quantity\n if (params.item.quantity <= 0) {\n // remove from cart\n orderItem = await order\n .$relatedQuery(\"items\")\n .delete()\n .where({ item_id: params.item.product_id });\n\n return orderItem;\n }\n\n orderItem = await order\n .$relatedQuery(\"items\")\n .patch({\n quantity: params.item.quantity,\n })\n .where({\n item_id: params.item.product_id,\n })\n .returning(\"*\");\n\n return orderItem;\n}\n\nasync function updateOrder(id, user, params) {\n let order = await getOrder(id).withGraphFetched(\"company\");\n\n if (order.company.id !== user.company.id) {\n const error = new Error(\"Unathorized\");\n throw error;\n }\n // aka update order table\n order = await Order.query().patchAndFetchById(id, params);\n\n return order;\n}\n\nasync function getOrderById(id) {\n const order = await getOrder(id).withGraphFetched(\"items\");\n return order;\n}\n\nasync function getOwnOrders(id) {\n const orders = await Order.query()\n .where({ cart_id: id })\n .orderBy(\"created_at\");\n return orders;\n}\n\nasync function getCompanyOrders(params) {\n const orders = await Order.query().where(params).orderBy(\"created_at\");\n return orders;\n}\n// =======================helpers==========================\nasync function get_or_create(id, company_id) {\n // checks for the existence of a customer order\n // if it exists add the new items on it\n // if it does not exist it creates one\n\n let order = await Order.query()\n .where({\n cart_id: id,\n order_status: \"New\" || \"Checkout\",\n })\n .first();\n\n if (!order) {\n // create one\n order = await Order.query().insert({\n cart_id: id,\n company_id,\n order_status: \"New\" || \"Checkout\",\n purchase_status: \"unpaid\",\n });\n }\n\n return order;\n}\n\n// =========== helpers===========\n\nasync function getOrder(id) {\n const order = await Order.query().where({ cart_id: id });\n return order;\n}\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/8f/orderservice_8f1654e5f0b57faf5b9d8eb4b1b618c4.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2968",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 10726,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 10723,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "createOrder",
"ranges": [
{
"startOffset": 253,
"endOffset": 574,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 576,
"endOffset": 1081,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrder",
"ranges": [
{
"startOffset": 1083,
"endOffset": 1410,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrderById",
"ranges": [
{
"startOffset": 1412,
"endOffset": 1525,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOwnOrders",
"ranges": [
{
"startOffset": 1527,
"endOffset": 1668,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getCompanyOrders",
"ranges": [
{
"startOffset": 1670,
"endOffset": 1804,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get_or_create",
"ranges": [
{
"startOffset": 1867,
"endOffset": 2374,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "getOrder",
"ranges": [
{
"startOffset": 2411,
"endOffset": 2524,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const {\n Model\n} = require(\"objection\");\n\nconst tableNames = require(\"../../../constants/tableNames\");\n\nconst db = require(\"../../../db\");\n\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`\n }\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`\n }\n }\n };\n }\n\n}\n\nModel.knex(db);\nmodule.exports = Order;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVyLm1vZGVsLmpzIl0sIm5hbWVzIjpbIk1vZGVsIiwicmVxdWlyZSIsInRhYmxlTmFtZXMiLCJkYiIsInNjaGVtYSIsIk9yZGVyIiwidGFibGVOYW1lIiwib3JkZXIiLCJqc29uU2NoZW1hIiwicmVsYXRpb25NYXBwaW5ncyIsIkNvbXBhbnkiLCJPcmRlckl0ZW0iLCJpdGVtcyIsInJlbGF0aW9uIiwiSGFzTWFueVJlbGF0aW9uIiwibW9kZWxDbGFzcyIsImpvaW4iLCJmcm9tIiwidG8iLCJvcmRlckl0ZW0iLCJjb21wYW55IiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJrbmV4IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUFFQSxFQUFBQTtBQUFGLElBQVlDLE9BQU8sQ0FBQyxXQUFELENBQXpCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLCtCQUFELENBQTFCOztBQUNBLE1BQU1FLEVBQUUsR0FBR0YsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMscUJBQUQsQ0FBdEI7O0FBRUEsTUFBTUksS0FBTixTQUFvQkwsS0FBcEIsQ0FBMEI7QUFDdEIsYUFBV00sU0FBWCxHQUF1QjtBQUNuQixXQUFPSixVQUFVLENBQUNLLEtBQWxCO0FBQ0g7O0FBRUQsYUFBV0MsVUFBWCxHQUF3QjtBQUNwQixXQUFPSixNQUFQO0FBQ0g7O0FBRUQsYUFBV0ssZ0JBQVgsR0FBOEI7QUFDMUIsVUFBTUMsT0FBTyxHQUFHVCxPQUFPLENBQUMsa0JBQUQsQ0FBdkI7O0FBQ0EsVUFBTVUsU0FBUyxHQUFHVixPQUFPLENBQUMsNkJBQUQsQ0FBekI7O0FBRUEsV0FBTztBQUNIVyxNQUFBQSxLQUFLLEVBQUU7QUFDSEMsUUFBQUEsUUFBUSxFQUFFYixLQUFLLENBQUNjLGVBRGI7QUFFSEMsUUFBQUEsVUFBVSxFQUFFSixTQUZUO0FBR0hLLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLEtBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDaUIsU0FBVTtBQUYxQjtBQUhILE9BREo7QUFTSEMsTUFBQUEsT0FBTyxFQUFFO0FBQ0xQLFFBQUFBLFFBQVEsRUFBRWIsS0FBSyxDQUFDcUIsb0JBRFg7QUFFTE4sUUFBQUEsVUFBVSxFQUFFTCxPQUZQO0FBR0xNLFFBQUFBLElBQUksRUFBRTtBQUNGQyxVQUFBQSxJQUFJLEVBQUcsR0FBRWYsVUFBVSxDQUFDSyxLQUFNLGFBRHhCO0FBRUZXLFVBQUFBLEVBQUUsRUFBRyxHQUFFaEIsVUFBVSxDQUFDa0IsT0FBUTtBQUZ4QjtBQUhEO0FBVE4sS0FBUDtBQWtCSDs7QUEvQnFCOztBQWtDMUJwQixLQUFLLENBQUNzQixJQUFOLENBQVduQixFQUFYO0FBRUFvQixNQUFNLENBQUNDLE9BQVAsR0FBaUJuQixLQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgTW9kZWwgfSA9IHJlcXVpcmUoXCJvYmplY3Rpb25cIik7XG5jb25zdCB0YWJsZU5hbWVzID0gcmVxdWlyZShcIi4uLy4uLy4uL2NvbnN0YW50cy90YWJsZU5hbWVzXCIpO1xuY29uc3QgZGIgPSByZXF1aXJlKFwiLi4vLi4vLi4vZGJcIik7XG5jb25zdCBzY2hlbWEgPSByZXF1aXJlKFwiLi9vcmRlci5zY2hlbWEuanNvblwiKTtcblxuY2xhc3MgT3JkZXIgZXh0ZW5kcyBNb2RlbCB7XG4gICAgc3RhdGljIGdldCB0YWJsZU5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0YWJsZU5hbWVzLm9yZGVyO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXQganNvblNjaGVtYSgpIHtcbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0IHJlbGF0aW9uTWFwcGluZ3MoKSB7XG4gICAgICAgIGNvbnN0IENvbXBhbnkgPSByZXF1aXJlKFwiLi4vY29tcGFueS5tb2RlbFwiKTtcbiAgICAgICAgY29uc3QgT3JkZXJJdGVtID0gcmVxdWlyZShcIi4vb3JkZXJJdGVtL29yZGVySXRlbS5tb2RlbFwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogTW9kZWwuSGFzTWFueVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IE9yZGVySXRlbSxcbiAgICAgICAgICAgICAgICBqb2luOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IGAke3RhYmxlTmFtZXMub3JkZXJ9LmlkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMub3JkZXJJdGVtfS5vcmRlcl9pZGAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wYW55OiB7XG4gICAgICAgICAgICAgICAgcmVsYXRpb246IE1vZGVsLkJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIG1vZGVsQ2xhc3M6IENvbXBhbnksXG4gICAgICAgICAgICAgICAgam9pbjoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiBgJHt0YWJsZU5hbWVzLm9yZGVyfS5jb21wYW55X2lkYCxcbiAgICAgICAgICAgICAgICAgICAgdG86IGAke3RhYmxlTmFtZXMuY29tcGFueX0uaWRgLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuTW9kZWwua25leChkYik7XG5cbm1vZHVsZS5leHBvcnRzID0gT3JkZXI7XG4iXX0=",
"originalCode": "const { Model } = require(\"objection\");\nconst tableNames = require(\"../../../constants/tableNames\");\nconst db = require(\"../../../db\");\nconst schema = require(\"./order.schema.json\");\n\nclass Order extends Model {\n static get tableName() {\n return tableNames.order;\n }\n\n static get jsonSchema() {\n return schema;\n }\n\n static get relationMappings() {\n const Company = require(\"../company.model\");\n const OrderItem = require(\"./orderItem/orderItem.model\");\n\n return {\n items: {\n relation: Model.HasManyRelation,\n modelClass: OrderItem,\n join: {\n from: `${tableNames.order}.id`,\n to: `${tableNames.orderItem}.order_id`,\n },\n },\n company: {\n relation: Model.BelongsToOneRelation,\n modelClass: Company,\n join: {\n from: `${tableNames.order}.company_id`,\n to: `${tableNames.company}.id`,\n },\n },\n };\n }\n}\n\nModel.knex(db);\n\nmodule.exports = Order;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/79/ordermodel_792f8a5579c998fd783317a17c94a303.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2969",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 4521,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 4518,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Order",
"ranges": [
{
"startOffset": 278,
"endOffset": 278,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get tableName",
"ranges": [
{
"startOffset": 315,
"endOffset": 365,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get jsonSchema",
"ranges": [
{
"startOffset": 376,
"endOffset": 417,
"count": 0
}
],
"isBlockCoverage": false
},
{
"functionName": "get relationMappings",
"ranges": [
{
"startOffset": 428,
"endOffset": 1019,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
},
{
"codeTransformResult": {
"code": "const express = require(\"express\");\n\nconst {\n auth: Auth\n} = require(\"../../../../_middlewares/auth\");\n\nconst role = require(\"../../../../utils/role\");\n\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true\n});\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9yZGVySXRlbS5yb3V0ZXMuanMiXSwibmFtZXMiOlsiZXhwcmVzcyIsInJlcXVpcmUiLCJhdXRoIiwiQXV0aCIsInJvbGUiLCJvcmRlclNlcnZpY2UiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJtZXJnZVBhcmFtcyIsInB1dCIsImN1c3RvbWVyIiwidXBkYXRlT3JkZXJJdGVtIiwicmVxIiwicmVzIiwibmV4dCIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBQ0EsTUFBTTtBQUFFQyxFQUFBQSxJQUFJLEVBQUVDO0FBQVIsSUFBaUJGLE9BQU8sQ0FBQywrQkFBRCxDQUE5Qjs7QUFDQSxNQUFNRyxJQUFJLEdBQUdILE9BQU8sQ0FBQyx3QkFBRCxDQUFwQjs7QUFDQSxNQUFNSSxZQUFZLEdBQUdKLE9BQU8sQ0FBQyxrQkFBRCxDQUE1Qjs7QUFFQSxNQUFNSyxNQUFNLEdBQUdOLE9BQU8sQ0FBQ08sTUFBUixDQUFlO0FBQzFCQyxFQUFBQSxXQUFXLEVBQUU7QUFEYSxDQUFmLENBQWY7QUFJQUYsTUFBTSxDQUFDRyxHQUFQLENBQVcsR0FBWCxFQUFnQk4sSUFBSSxDQUFDQyxJQUFJLENBQUNNLFFBQU4sQ0FBcEIsRUFBcUNDLGVBQXJDOztBQUVBLFNBQVNBLGVBQVQsQ0FBeUJDLEdBQXpCLEVBQThCQyxHQUE5QixFQUFtQ0MsSUFBbkMsRUFBeUM7QUFDckNULEVBQUFBLFlBQVksQ0FBQ00sZUFBYjtBQUNIOztBQUVESSxNQUFNLENBQUNDLE9BQVAsR0FBaUJWLE1BQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoXCJleHByZXNzXCIpO1xuY29uc3QgeyBhdXRoOiBBdXRoIH0gPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vX21pZGRsZXdhcmVzL2F1dGhcIik7XG5jb25zdCByb2xlID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL3V0aWxzL3JvbGVcIik7XG5jb25zdCBvcmRlclNlcnZpY2UgPSByZXF1aXJlKFwiLi4vb3JkZXIuc2VydmljZVwiKTtcblxuY29uc3Qgcm91dGVyID0gZXhwcmVzcy5Sb3V0ZXIoe1xuICAgIG1lcmdlUGFyYW1zOiB0cnVlLFxufSk7XG5cbnJvdXRlci5wdXQoXCIvXCIsIEF1dGgocm9sZS5jdXN0b21lciksIHVwZGF0ZU9yZGVySXRlbSk7XG5cbmZ1bmN0aW9uIHVwZGF0ZU9yZGVySXRlbShyZXEsIHJlcywgbmV4dCkge1xuICAgIG9yZGVyU2VydmljZS51cGRhdGVPcmRlckl0ZW0oKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSByb3V0ZXI7XG4iXX0=",
"originalCode": "const express = require(\"express\");\nconst { auth: Auth } = require(\"../../../../_middlewares/auth\");\nconst role = require(\"../../../../utils/role\");\nconst orderService = require(\"../order.service\");\n\nconst router = express.Router({\n mergeParams: true,\n});\n\nrouter.put(\"/\", Auth(role.customer), updateOrderItem);\n\nfunction updateOrderItem(req, res, next) {\n orderService.updateOrderItem();\n}\n\nmodule.exports = router;\n",
"sourceMapPath": "/tmp/jest_rs/jest-transform-cache-b962fb3a13b4c1668b1985fc59a3e401-b0986c9d7f26a96973ae74af52fbaf1c/44/orderItemroutes_440b1db2888128c60482407cf8bcef31.map",
"wrapperLength": 89
},
"result": {
"scriptId": "2970",
"url": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"functions": [
{
"functionName": "",
"ranges": [
{
"startOffset": 0,
"endOffset": 2184,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "Object.<anonymous>",
"ranges": [
{
"startOffset": 23,
"endOffset": 2181,
"count": 1
}
],
"isBlockCoverage": false
},
{
"functionName": "updateOrderItem",
"ranges": [
{
"startOffset": 406,
"endOffset": 484,
"count": 0
}
],
"isBlockCoverage": false
}
]
}
}
]
}
],
"wasInterrupted": false,
"coverageMap": {
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/knexfile.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 36
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 27
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 18
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 11
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 21
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 21
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 33
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 51
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 44
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 52
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 10
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 21
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 52
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 10
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 0
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 16
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 47
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 10
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 6
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 0
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 18
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 21
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 21
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 33
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 46
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 44
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 52
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 10
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 21
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 52
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 10
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 0
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 16
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 47
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 10
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 6
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 0
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 17
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 21
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 45
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 15
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 19
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 20
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 10
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 21
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 52
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 10
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 0
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 16
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 47
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 10
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 6
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 1,
"49": 1,
"50": 1,
"51": 1,
"52": 1,
"53": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
},
"locations": [
{
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
},
"locations": [
{
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
},
"loc": {
"start": {
"line": 54,
"column": 2
},
"end": {
"line": 54,
"column": 2
}
},
"line": 54
}
},
"f": {
"0": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/auth.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 36
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 47
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 56
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 18
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 9
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 12
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 2
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 27
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 36
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 24
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 5
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 38
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 18
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 12
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 40
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 59
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 11
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 66
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 16
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 41
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 58
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 15
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 9
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 35
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 13
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 75
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 0
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 43
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 47
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 25
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 0
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 80
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 64
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 73
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 13
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 0
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 58
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 36
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 19
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 25
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 24
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 9
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 6
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 0
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 20
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 38
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 13
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 46
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 24
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 42
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 46
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 18
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 25
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 0
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 24
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 34
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 73
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 13
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 19
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 25
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 24
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 9
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 6
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 26,
"10": 26,
"11": 4,
"12": 4,
"13": 26,
"14": 26,
"15": 33,
"16": 33,
"17": 33,
"18": 33,
"19": 33,
"20": 16,
"21": 33,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 16,
"27": 16,
"28": 16,
"29": 16,
"30": 16,
"31": 16,
"32": 16,
"33": 16,
"34": 16,
"35": 33,
"36": 1,
"37": 1,
"38": 1,
"39": 15,
"40": 15,
"41": 15,
"42": 15,
"43": 33,
"44": 0,
"45": 0,
"46": 15,
"47": 26,
"48": 1,
"49": 11,
"50": 11,
"51": 16,
"52": 16,
"53": 16,
"54": 8,
"55": 8,
"56": 8,
"57": 8,
"58": 8,
"59": 16,
"60": 5,
"61": 5,
"62": 5,
"63": 3,
"64": 16,
"65": 0,
"66": 0,
"67": 3,
"68": 11
},
"branchMap": {
"0": {
"type": "branch",
"line": 69,
"loc": {
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 69,
"loc": {
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"locations": [
{
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 35
},
"end": {
"line": 13,
"column": 5
}
},
"locations": [
{
"start": {
"line": 11,
"column": 35
},
"end": {
"line": 13,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 11
},
"end": {
"line": 47,
"column": 6
}
},
"locations": [
{
"start": {
"line": 15,
"column": 11
},
"end": {
"line": 47,
"column": 6
}
}
]
},
"5": {
"type": "branch",
"line": 18,
"loc": {
"start": {
"line": 18,
"column": 12
},
"end": {
"line": 19,
"column": 15
}
},
"locations": [
{
"start": {
"line": 18,
"column": 12
},
"end": {
"line": 19,
"column": 15
}
}
]
},
"6": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 10
},
"end": {
"line": 22,
"column": 15
}
},
"locations": [
{
"start": {
"line": 20,
"column": 10
},
"end": {
"line": 22,
"column": 15
}
}
]
},
"7": {
"type": "branch",
"line": 22,
"loc": {
"start": {
"line": 22,
"column": 9
},
"end": {
"line": 26,
"column": 9
}
},
"locations": [
{
"start": {
"line": 22,
"column": 9
},
"end": {
"line": 26,
"column": 9
}
}
]
},
"8": {
"type": "branch",
"line": 26,
"loc": {
"start": {
"line": 26,
"column": 9
},
"end": {
"line": 36,
"column": 48
}
},
"locations": [
{
"start": {
"line": 26,
"column": 9
},
"end": {
"line": 36,
"column": 48
}
}
]
},
"9": {
"type": "branch",
"line": 36,
"loc": {
"start": {
"line": 36,
"column": 79
},
"end": {
"line": 39,
"column": 13
}
},
"locations": [
{
"start": {
"line": 36,
"column": 79
},
"end": {
"line": 39,
"column": 13
}
}
]
},
"10": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 13
},
"end": {
"line": 44,
"column": 10
}
},
"locations": [
{
"start": {
"line": 39,
"column": 13
},
"end": {
"line": 44,
"column": 10
}
}
]
},
"11": {
"type": "branch",
"line": 44,
"loc": {
"start": {
"line": 44,
"column": 10
},
"end": {
"line": 46,
"column": 9
}
},
"locations": [
{
"start": {
"line": 44,
"column": 10
},
"end": {
"line": 46,
"column": 9
}
}
]
},
"12": {
"type": "branch",
"line": 46,
"loc": {
"start": {
"line": 46,
"column": 9
},
"end": {
"line": 47,
"column": 6
}
},
"locations": [
{
"start": {
"line": 46,
"column": 9
},
"end": {
"line": 47,
"column": 6
}
}
]
},
"13": {
"type": "branch",
"line": 50,
"loc": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"14": {
"type": "branch",
"line": 51,
"loc": {
"start": {
"line": 51,
"column": 11
},
"end": {
"line": 68,
"column": 6
}
},
"locations": [
{
"start": {
"line": 51,
"column": 11
},
"end": {
"line": 68,
"column": 6
}
}
]
},
"15": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 23
},
"end": {
"line": 60,
"column": 16
}
},
"locations": [
{
"start": {
"line": 54,
"column": 23
},
"end": {
"line": 60,
"column": 16
}
}
]
},
"16": {
"type": "branch",
"line": 60,
"loc": {
"start": {
"line": 60,
"column": 23
},
"end": {
"line": 63,
"column": 13
}
},
"locations": [
{
"start": {
"line": 60,
"column": 23
},
"end": {
"line": 63,
"column": 13
}
}
]
},
"17": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 13
},
"end": {
"line": 65,
"column": 10
}
},
"locations": [
{
"start": {
"line": 63,
"column": 13
},
"end": {
"line": 65,
"column": 10
}
}
]
},
"18": {
"type": "branch",
"line": 65,
"loc": {
"start": {
"line": 65,
"column": 10
},
"end": {
"line": 67,
"column": 9
}
},
"locations": [
{
"start": {
"line": 65,
"column": 10
},
"end": {
"line": 67,
"column": 9
}
}
]
},
"19": {
"type": "branch",
"line": 67,
"loc": {
"start": {
"line": 67,
"column": 9
},
"end": {
"line": 68,
"column": 6
}
},
"locations": [
{
"start": {
"line": 67,
"column": 9
},
"end": {
"line": 68,
"column": 6
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
26
],
"3": [
4
],
"4": [
33
],
"5": [
16
],
"6": [
16
],
"7": [
1
],
"8": [
16
],
"9": [
1
],
"10": [
15
],
"11": [
0
],
"12": [
15
],
"13": [
11
],
"14": [
16
],
"15": [
8
],
"16": [
5
],
"17": [
3
],
"18": [
0
],
"19": [
3
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
},
"loc": {
"start": {
"line": 69,
"column": 1
},
"end": {
"line": 69,
"column": 1
}
},
"line": 69
},
"1": {
"name": "auth",
"decl": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"loc": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"line": 10
},
"2": {
"name": "isOwner",
"decl": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"loc": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"line": 50
}
},
"f": {
"0": 1,
"1": 26,
"2": 11
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/_middlewares/validateRequest.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 33
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 45
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 21
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 48
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 51
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 51
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 6
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 64
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 16
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 58
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 34
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 26
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 22
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 12
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 25
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 15
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 5
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 19,
"3": 19,
"4": 19,
"5": 19,
"6": 19,
"7": 19,
"8": 19,
"9": 19,
"10": 19,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 19,
"16": 18,
"17": 18,
"18": 18,
"19": 19
},
"branchMap": {
"0": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
},
"locations": [
{
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
},
"locations": [
{
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 3,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 20,
"column": 1
}
},
"locations": [
{
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 20,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 15
},
"end": {
"line": 16,
"column": 11
}
},
"locations": [
{
"start": {
"line": 11,
"column": 15
},
"end": {
"line": 16,
"column": 11
}
}
]
},
"4": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 5
},
"end": {
"line": 19,
"column": 5
}
},
"locations": [
{
"start": {
"line": 16,
"column": 5
},
"end": {
"line": 19,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 18
},
"end": {
"line": 13,
"column": 34
}
},
"locations": [
{
"start": {
"line": 13,
"column": 18
},
"end": {
"line": 13,
"column": 34
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
19
],
"3": [
1
],
"4": [
18
],
"5": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
},
"loc": {
"start": {
"line": 20,
"column": 1
},
"end": {
"line": 20,
"column": 1
}
},
"line": 20
},
"1": {
"name": "validateRequest",
"decl": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 20,
"column": 1
}
},
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 20,
"column": 1
}
},
"line": 3
}
},
"f": {
"0": 1,
"1": 19
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 32
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 7
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 17
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 17
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 22
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 33
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 46
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 58
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 41
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 43
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 66
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 55
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 61
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 42
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 36
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 69
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 49
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 39
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 0
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 24
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 32
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 41
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 15
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 35
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 36
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 38
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 10
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 21
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 1
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 0
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 35
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 31
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 15
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 46
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 36
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 29
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 21
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 22
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 24
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 102
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 15
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 10
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 21
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 0
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 43
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 34
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 15
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 46
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 36
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 29
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 21
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 22
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 24
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 102
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 15
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 10
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 21
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 1
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 0
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 38
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 15
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 30
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 70
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 21
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 1
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 0
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 33
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 15
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 17
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 47
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 21
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 0
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 34
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 68
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 80
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 64
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 5
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 0
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 15
}
},
"85": {
"start": {
"line": 86,
"column": 0
},
"end": {
"line": 86,
"column": 31
}
},
"86": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 87,
"column": 79
}
},
"87": {
"start": {
"line": 88,
"column": 0
},
"end": {
"line": 88,
"column": 21
}
},
"88": {
"start": {
"line": 89,
"column": 0
},
"end": {
"line": 89,
"column": 1
}
},
"89": {
"start": {
"line": 90,
"column": 0
},
"end": {
"line": 90,
"column": 0
}
},
"90": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 91,
"column": 33
}
},
"91": {
"start": {
"line": 92,
"column": 0
},
"end": {
"line": 92,
"column": 15
}
},
"92": {
"start": {
"line": 93,
"column": 0
},
"end": {
"line": 93,
"column": 25
}
},
"93": {
"start": {
"line": 94,
"column": 0
},
"end": {
"line": 94,
"column": 45
}
},
"94": {
"start": {
"line": 95,
"column": 0
},
"end": {
"line": 95,
"column": 21
}
},
"95": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 96,
"column": 1
}
},
"96": {
"start": {
"line": 97,
"column": 0
},
"end": {
"line": 97,
"column": 0
}
},
"97": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 98,
"column": 33
}
},
"98": {
"start": {
"line": 99,
"column": 0
},
"end": {
"line": 99,
"column": 71
}
},
"99": {
"start": {
"line": 100,
"column": 0
},
"end": {
"line": 100,
"column": 80
}
},
"100": {
"start": {
"line": 101,
"column": 0
},
"end": {
"line": 101,
"column": 64
}
},
"101": {
"start": {
"line": 102,
"column": 0
},
"end": {
"line": 102,
"column": 5
}
},
"102": {
"start": {
"line": 103,
"column": 0
},
"end": {
"line": 103,
"column": 0
}
},
"103": {
"start": {
"line": 104,
"column": 0
},
"end": {
"line": 104,
"column": 15
}
},
"104": {
"start": {
"line": 105,
"column": 0
},
"end": {
"line": 105,
"column": 40
}
},
"105": {
"start": {
"line": 106,
"column": 0
},
"end": {
"line": 106,
"column": 45
}
},
"106": {
"start": {
"line": 107,
"column": 0
},
"end": {
"line": 107,
"column": 21
}
},
"107": {
"start": {
"line": 108,
"column": 0
},
"end": {
"line": 108,
"column": 1
}
},
"108": {
"start": {
"line": 109,
"column": 0
},
"end": {
"line": 109,
"column": 0
}
},
"109": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 110,
"column": 34
}
},
"110": {
"start": {
"line": 111,
"column": 0
},
"end": {
"line": 111,
"column": 71
}
},
"111": {
"start": {
"line": 112,
"column": 0
},
"end": {
"line": 112,
"column": 80
}
},
"112": {
"start": {
"line": 113,
"column": 0
},
"end": {
"line": 113,
"column": 64
}
},
"113": {
"start": {
"line": 114,
"column": 0
},
"end": {
"line": 114,
"column": 5
}
},
"114": {
"start": {
"line": 115,
"column": 0
},
"end": {
"line": 115,
"column": 0
}
},
"115": {
"start": {
"line": 116,
"column": 0
},
"end": {
"line": 116,
"column": 15
}
},
"116": {
"start": {
"line": 117,
"column": 0
},
"end": {
"line": 117,
"column": 29
}
},
"117": {
"start": {
"line": 118,
"column": 0
},
"end": {
"line": 118,
"column": 19
}
},
"118": {
"start": {
"line": 119,
"column": 0
},
"end": {
"line": 119,
"column": 22
}
},
"119": {
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 120,
"column": 56
}
},
"120": {
"start": {
"line": 121,
"column": 0
},
"end": {
"line": 121,
"column": 34
}
},
"121": {
"start": {
"line": 122,
"column": 0
},
"end": {
"line": 122,
"column": 14
}
},
"122": {
"start": {
"line": 123,
"column": 0
},
"end": {
"line": 123,
"column": 9
}
},
"123": {
"start": {
"line": 124,
"column": 0
},
"end": {
"line": 124,
"column": 21
}
},
"124": {
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 125,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 11,
"25": 11,
"26": 11,
"27": 11,
"28": 11,
"29": 11,
"30": 11,
"31": 11,
"32": 11,
"33": 1,
"34": 2,
"35": 2,
"36": 2,
"37": 2,
"38": 2,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 2,
"47": 2,
"48": 1,
"49": 0,
"50": 0,
"51": 0,
"52": 0,
"53": 0,
"54": 0,
"55": 0,
"56": 0,
"57": 0,
"58": 0,
"59": 0,
"60": 0,
"61": 0,
"62": 0,
"63": 1,
"64": 0,
"65": 0,
"66": 0,
"67": 0,
"68": 0,
"69": 0,
"70": 1,
"71": 1,
"72": 1,
"73": 1,
"74": 1,
"75": 1,
"76": 1,
"77": 1,
"78": 1,
"79": 1,
"80": 1,
"81": 0,
"82": 0,
"83": 1,
"84": 1,
"85": 1,
"86": 1,
"87": 1,
"88": 1,
"89": 1,
"90": 1,
"91": 1,
"92": 1,
"93": 1,
"94": 1,
"95": 1,
"96": 1,
"97": 2,
"98": 2,
"99": 2,
"100": 0,
"101": 0,
"102": 2,
"103": 2,
"104": 2,
"105": 2,
"106": 2,
"107": 2,
"108": 1,
"109": 0,
"110": 0,
"111": 0,
"112": 0,
"113": 0,
"114": 0,
"115": 0,
"116": 0,
"117": 0,
"118": 0,
"119": 0,
"120": 0,
"121": 0,
"122": 0,
"123": 0,
"124": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 125,
"loc": {
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
},
"locations": [
{
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 125,
"loc": {
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
},
"locations": [
{
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 25,
"loc": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 33,
"column": 1
}
},
"locations": [
{
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 33,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 29,
"loc": {
"start": {
"line": 29,
"column": 14
},
"end": {
"line": 31,
"column": 10
}
},
"locations": [
{
"start": {
"line": 29,
"column": 14
},
"end": {
"line": 31,
"column": 10
}
}
]
},
"4": {
"type": "branch",
"line": 35,
"loc": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"locations": [
{
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 14
},
"end": {
"line": 46,
"column": 10
}
},
"locations": [
{
"start": {
"line": 39,
"column": 14
},
"end": {
"line": 46,
"column": 10
}
}
]
},
"6": {
"type": "branch",
"line": 72,
"loc": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"locations": [
{
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 75,
"loc": {
"start": {
"line": 75,
"column": 15
},
"end": {
"line": 75,
"column": 31
}
},
"locations": [
{
"start": {
"line": 75,
"column": 15
},
"end": {
"line": 75,
"column": 31
}
}
]
},
"8": {
"type": "branch",
"line": 79,
"loc": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 89,
"column": 1
}
},
"locations": [
{
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 89,
"column": 1
}
}
]
},
"9": {
"type": "branch",
"line": 81,
"loc": {
"start": {
"line": 81,
"column": 79
},
"end": {
"line": 83,
"column": 5
}
},
"locations": [
{
"start": {
"line": 81,
"column": 79
},
"end": {
"line": 83,
"column": 5
}
}
]
},
"10": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 15
},
"end": {
"line": 87,
"column": 61
}
},
"locations": [
{
"start": {
"line": 87,
"column": 15
},
"end": {
"line": 87,
"column": 61
}
}
]
},
"11": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 35
},
"end": {
"line": 87,
"column": 61
}
},
"locations": [
{
"start": {
"line": 87,
"column": 35
},
"end": {
"line": 87,
"column": 61
}
}
]
},
"12": {
"type": "branch",
"line": 91,
"loc": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 96,
"column": 1
}
},
"locations": [
{
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 96,
"column": 1
}
}
]
},
"13": {
"type": "branch",
"line": 98,
"loc": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 108,
"column": 1
}
},
"locations": [
{
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 108,
"column": 1
}
}
]
},
"14": {
"type": "branch",
"line": 100,
"loc": {
"start": {
"line": 100,
"column": 79
},
"end": {
"line": 102,
"column": 5
}
},
"locations": [
{
"start": {
"line": 100,
"column": 79
},
"end": {
"line": 102,
"column": 5
}
}
]
},
"15": {
"type": "branch",
"line": 106,
"loc": {
"start": {
"line": 106,
"column": 15
},
"end": {
"line": 106,
"column": 30
}
},
"locations": [
{
"start": {
"line": 106,
"column": 15
},
"end": {
"line": 106,
"column": 30
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
11
],
"3": [
11
],
"4": [
2
],
"5": [
1
],
"6": [
1
],
"7": [
1
],
"8": [
1
],
"9": [
0
],
"10": [
1
],
"11": [
0
],
"12": [
1
],
"13": [
2
],
"14": [
0
],
"15": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
},
"loc": {
"start": {
"line": 125,
"column": 1
},
"end": {
"line": 125,
"column": 1
}
},
"line": 125
},
"1": {
"name": "login",
"decl": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 33,
"column": 1
}
},
"loc": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 33,
"column": 1
}
},
"line": 25
},
"2": {
"name": "register",
"decl": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"loc": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"line": 35
},
"3": {
"name": "registerCustomer",
"decl": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 63,
"column": 1
}
},
"loc": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 63,
"column": 1
}
},
"line": 50
},
"4": {
"name": "verifyEmail",
"decl": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 70,
"column": 1
}
},
"loc": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 70,
"column": 1
}
},
"line": 65
},
"5": {
"name": "getAll",
"decl": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"loc": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"line": 72
},
"6": {
"name": "getById",
"decl": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 89,
"column": 1
}
},
"loc": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 89,
"column": 1
}
},
"line": 79
},
"7": {
"name": "create",
"decl": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 96,
"column": 1
}
},
"loc": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 96,
"column": 1
}
},
"line": 91
},
"8": {
"name": "update",
"decl": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 108,
"column": 1
}
},
"loc": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 108,
"column": 1
}
},
"line": 98
},
"9": {
"name": "_delete",
"decl": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 125,
"column": 1
}
},
"loc": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 125,
"column": 1
}
},
"line": 110
}
},
"f": {
"0": 1,
"1": 11,
"2": 2,
"3": 0,
"4": 0,
"5": 1,
"6": 1,
"7": 1,
"8": 2,
"9": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 43
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 39
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 33
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 33
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 47
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 0
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 18
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 7
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 19
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 18
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 21
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 25
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 25
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 20
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 7
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 10
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 13
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 16
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 11
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 11
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 11
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 12
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 20
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 2
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 43
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 48
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 0
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 8
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 19
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 33
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 59
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 7
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 66
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 20
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 5
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 0
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 51
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 0
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 12
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 36
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 14
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 6
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 1
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 0
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 41
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 15
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 52
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 80
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 66
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 32
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 64
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 10
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 0
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 20
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 5
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 0
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 45
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 0
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 18
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 52
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 0
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 42
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 0
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 12
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 22
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 14
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 6
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 0
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 39
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 67
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 0
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 46
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 0
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 34
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 29
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 25
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 32
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 7
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 0
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 31
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 15
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 52
}
},
"85": {
"start": {
"line": 86,
"column": 0
},
"end": {
"line": 86,
"column": 67
}
},
"86": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 87,
"column": 5
}
},
"87": {
"start": {
"line": 88,
"column": 0
},
"end": {
"line": 88,
"column": 0
}
},
"88": {
"start": {
"line": 89,
"column": 0
},
"end": {
"line": 89,
"column": 45
}
},
"89": {
"start": {
"line": 90,
"column": 0
},
"end": {
"line": 90,
"column": 0
}
},
"90": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 91,
"column": 34
}
},
"91": {
"start": {
"line": 92,
"column": 0
},
"end": {
"line": 92,
"column": 0
}
},
"92": {
"start": {
"line": 93,
"column": 0
},
"end": {
"line": 93,
"column": 33
}
},
"93": {
"start": {
"line": 94,
"column": 0
},
"end": {
"line": 94,
"column": 1
}
},
"94": {
"start": {
"line": 95,
"column": 0
},
"end": {
"line": 95,
"column": 0
}
},
"95": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 96,
"column": 35
}
},
"96": {
"start": {
"line": 97,
"column": 0
},
"end": {
"line": 97,
"column": 45
}
},
"97": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 98,
"column": 0
}
},
"98": {
"start": {
"line": 99,
"column": 0
},
"end": {
"line": 99,
"column": 36
}
},
"99": {
"start": {
"line": 100,
"column": 0
},
"end": {
"line": 100,
"column": 8
}
},
"100": {
"start": {
"line": 101,
"column": 0
},
"end": {
"line": 101,
"column": 23
}
},
"101": {
"start": {
"line": 102,
"column": 0
},
"end": {
"line": 102,
"column": 41
}
},
"102": {
"start": {
"line": 103,
"column": 0
},
"end": {
"line": 103,
"column": 51
}
},
"103": {
"start": {
"line": 104,
"column": 0
},
"end": {
"line": 104,
"column": 7
}
},
"104": {
"start": {
"line": 105,
"column": 0
},
"end": {
"line": 105,
"column": 74
}
},
"105": {
"start": {
"line": 106,
"column": 0
},
"end": {
"line": 106,
"column": 20
}
},
"106": {
"start": {
"line": 107,
"column": 0
},
"end": {
"line": 107,
"column": 5
}
},
"107": {
"start": {
"line": 108,
"column": 0
},
"end": {
"line": 108,
"column": 0
}
},
"108": {
"start": {
"line": 109,
"column": 0
},
"end": {
"line": 109,
"column": 38
}
},
"109": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 110,
"column": 26
}
},
"110": {
"start": {
"line": 111,
"column": 0
},
"end": {
"line": 111,
"column": 54
}
},
"111": {
"start": {
"line": 112,
"column": 0
},
"end": {
"line": 112,
"column": 5
}
},
"112": {
"start": {
"line": 113,
"column": 0
},
"end": {
"line": 113,
"column": 0
}
},
"113": {
"start": {
"line": 114,
"column": 0
},
"end": {
"line": 114,
"column": 80
}
},
"114": {
"start": {
"line": 115,
"column": 0
},
"end": {
"line": 115,
"column": 0
}
},
"115": {
"start": {
"line": 116,
"column": 0
},
"end": {
"line": 116,
"column": 37
}
},
"116": {
"start": {
"line": 117,
"column": 0
},
"end": {
"line": 117,
"column": 1
}
},
"117": {
"start": {
"line": 118,
"column": 0
},
"end": {
"line": 118,
"column": 0
}
},
"118": {
"start": {
"line": 119,
"column": 0
},
"end": {
"line": 119,
"column": 57
}
},
"119": {
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 120,
"column": 25
}
},
"120": {
"start": {
"line": 121,
"column": 0
},
"end": {
"line": 121,
"column": 40
}
},
"121": {
"start": {
"line": 122,
"column": 0
},
"end": {
"line": 122,
"column": 48
}
},
"122": {
"start": {
"line": 123,
"column": 0
},
"end": {
"line": 123,
"column": 1
}
},
"123": {
"start": {
"line": 124,
"column": 0
},
"end": {
"line": 124,
"column": 0
}
},
"124": {
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 125,
"column": 28
}
},
"125": {
"start": {
"line": 126,
"column": 0
},
"end": {
"line": 126,
"column": 45
}
},
"126": {
"start": {
"line": 127,
"column": 0
},
"end": {
"line": 127,
"column": 33
}
},
"127": {
"start": {
"line": 128,
"column": 0
},
"end": {
"line": 128,
"column": 1
}
},
"128": {
"start": {
"line": 129,
"column": 0
},
"end": {
"line": 129,
"column": 0
}
},
"129": {
"start": {
"line": 130,
"column": 0
},
"end": {
"line": 130,
"column": 37
}
},
"130": {
"start": {
"line": 131,
"column": 0
},
"end": {
"line": 131,
"column": 28
}
},
"131": {
"start": {
"line": 132,
"column": 0
},
"end": {
"line": 132,
"column": 38
}
},
"132": {
"start": {
"line": 133,
"column": 0
},
"end": {
"line": 133,
"column": 1
}
},
"133": {
"start": {
"line": 134,
"column": 0
},
"end": {
"line": 134,
"column": 0
}
},
"134": {
"start": {
"line": 135,
"column": 0
},
"end": {
"line": 135,
"column": 57
}
},
"135": {
"start": {
"line": 136,
"column": 0
},
"end": {
"line": 136,
"column": 34
}
},
"136": {
"start": {
"line": 137,
"column": 0
},
"end": {
"line": 137,
"column": 38
}
},
"137": {
"start": {
"line": 138,
"column": 0
},
"end": {
"line": 138,
"column": 28
}
},
"138": {
"start": {
"line": 139,
"column": 0
},
"end": {
"line": 139,
"column": 17
}
},
"139": {
"start": {
"line": 140,
"column": 0
},
"end": {
"line": 140,
"column": 19
}
},
"140": {
"start": {
"line": 141,
"column": 0
},
"end": {
"line": 141,
"column": 1
}
},
"141": {
"start": {
"line": 142,
"column": 0
},
"end": {
"line": 142,
"column": 0
}
},
"142": {
"start": {
"line": 143,
"column": 0
},
"end": {
"line": 143,
"column": 35
}
},
"143": {
"start": {
"line": 144,
"column": 0
},
"end": {
"line": 144,
"column": 79
}
},
"144": {
"start": {
"line": 145,
"column": 0
},
"end": {
"line": 145,
"column": 0
}
},
"145": {
"start": {
"line": 146,
"column": 0
},
"end": {
"line": 146,
"column": 43
}
},
"146": {
"start": {
"line": 147,
"column": 0
},
"end": {
"line": 147,
"column": 52
}
},
"147": {
"start": {
"line": 148,
"column": 0
},
"end": {
"line": 148,
"column": 50
}
},
"148": {
"start": {
"line": 149,
"column": 0
},
"end": {
"line": 149,
"column": 0
}
},
"149": {
"start": {
"line": 150,
"column": 0
},
"end": {
"line": 150,
"column": 21
}
},
"150": {
"start": {
"line": 151,
"column": 0
},
"end": {
"line": 151,
"column": 47
}
},
"151": {
"start": {
"line": 152,
"column": 0
},
"end": {
"line": 152,
"column": 14
}
},
"152": {
"start": {
"line": 153,
"column": 0
},
"end": {
"line": 153,
"column": 18
}
},
"153": {
"start": {
"line": 154,
"column": 0
},
"end": {
"line": 154,
"column": 17
}
},
"154": {
"start": {
"line": 155,
"column": 0
},
"end": {
"line": 155,
"column": 33
}
},
"155": {
"start": {
"line": 156,
"column": 0
},
"end": {
"line": 156,
"column": 20
}
},
"156": {
"start": {
"line": 157,
"column": 0
},
"end": {
"line": 157,
"column": 19
}
},
"157": {
"start": {
"line": 158,
"column": 0
},
"end": {
"line": 158,
"column": 21
}
},
"158": {
"start": {
"line": 159,
"column": 0
},
"end": {
"line": 159,
"column": 26
}
},
"159": {
"start": {
"line": 160,
"column": 0
},
"end": {
"line": 160,
"column": 43
}
},
"160": {
"start": {
"line": 161,
"column": 0
},
"end": {
"line": 161,
"column": 26
}
},
"161": {
"start": {
"line": 162,
"column": 0
},
"end": {
"line": 162,
"column": 7
}
},
"162": {
"start": {
"line": 163,
"column": 0
},
"end": {
"line": 163,
"column": 0
}
},
"163": {
"start": {
"line": 164,
"column": 0
},
"end": {
"line": 164,
"column": 33
}
},
"164": {
"start": {
"line": 165,
"column": 0
},
"end": {
"line": 165,
"column": 1
}
},
"165": {
"start": {
"line": 166,
"column": 0
},
"end": {
"line": 166,
"column": 0
}
},
"166": {
"start": {
"line": 167,
"column": 0
},
"end": {
"line": 167,
"column": 31
}
},
"167": {
"start": {
"line": 168,
"column": 0
},
"end": {
"line": 168,
"column": 43
}
},
"168": {
"start": {
"line": 169,
"column": 0
},
"end": {
"line": 169,
"column": 1
}
},
"169": {
"start": {
"line": 170,
"column": 0
},
"end": {
"line": 170,
"column": 0
}
},
"170": {
"start": {
"line": 171,
"column": 0
},
"end": {
"line": 171,
"column": 30
}
},
"171": {
"start": {
"line": 172,
"column": 0
},
"end": {
"line": 172,
"column": 50
}
},
"172": {
"start": {
"line": 173,
"column": 0
},
"end": {
"line": 173,
"column": 1
}
},
"173": {
"start": {
"line": 174,
"column": 0
},
"end": {
"line": 174,
"column": 0
}
},
"174": {
"start": {
"line": 175,
"column": 0
},
"end": {
"line": 175,
"column": 32
}
},
"175": {
"start": {
"line": 176,
"column": 0
},
"end": {
"line": 176,
"column": 11
}
},
"176": {
"start": {
"line": 177,
"column": 0
},
"end": {
"line": 177,
"column": 11
}
},
"177": {
"start": {
"line": 178,
"column": 0
},
"end": {
"line": 178,
"column": 18
}
},
"178": {
"start": {
"line": 179,
"column": 0
},
"end": {
"line": 179,
"column": 17
}
},
"179": {
"start": {
"line": 180,
"column": 0
},
"end": {
"line": 180,
"column": 14
}
},
"180": {
"start": {
"line": 181,
"column": 0
},
"end": {
"line": 181,
"column": 13
}
},
"181": {
"start": {
"line": 182,
"column": 0
},
"end": {
"line": 182,
"column": 16
}
},
"182": {
"start": {
"line": 183,
"column": 0
},
"end": {
"line": 183,
"column": 16
}
},
"183": {
"start": {
"line": 184,
"column": 0
},
"end": {
"line": 184,
"column": 19
}
},
"184": {
"start": {
"line": 185,
"column": 0
},
"end": {
"line": 185,
"column": 16
}
},
"185": {
"start": {
"line": 186,
"column": 0
},
"end": {
"line": 186,
"column": 12
}
},
"186": {
"start": {
"line": 187,
"column": 0
},
"end": {
"line": 187,
"column": 11
}
},
"187": {
"start": {
"line": 188,
"column": 0
},
"end": {
"line": 188,
"column": 18
}
},
"188": {
"start": {
"line": 189,
"column": 0
},
"end": {
"line": 189,
"column": 17
}
},
"189": {
"start": {
"line": 190,
"column": 0
},
"end": {
"line": 190,
"column": 14
}
},
"190": {
"start": {
"line": 191,
"column": 0
},
"end": {
"line": 191,
"column": 13
}
},
"191": {
"start": {
"line": 192,
"column": 0
},
"end": {
"line": 192,
"column": 16
}
},
"192": {
"start": {
"line": 193,
"column": 0
},
"end": {
"line": 193,
"column": 16
}
},
"193": {
"start": {
"line": 194,
"column": 0
},
"end": {
"line": 194,
"column": 19
}
},
"194": {
"start": {
"line": 195,
"column": 0
},
"end": {
"line": 195,
"column": 6
}
},
"195": {
"start": {
"line": 196,
"column": 0
},
"end": {
"line": 196,
"column": 1
}
},
"196": {
"start": {
"line": 197,
"column": 0
},
"end": {
"line": 197,
"column": 0
}
},
"197": {
"start": {
"line": 198,
"column": 0
},
"end": {
"line": 198,
"column": 55
}
},
"198": {
"start": {
"line": 199,
"column": 0
},
"end": {
"line": 199,
"column": 16
}
},
"199": {
"start": {
"line": 200,
"column": 0
},
"end": {
"line": 200,
"column": 17
}
},
"200": {
"start": {
"line": 201,
"column": 0
},
"end": {
"line": 201,
"column": 91
}
},
"201": {
"start": {
"line": 202,
"column": 0
},
"end": {
"line": 202,
"column": 84
}
},
"202": {
"start": {
"line": 203,
"column": 0
},
"end": {
"line": 203,
"column": 54
}
},
"203": {
"start": {
"line": 204,
"column": 0
},
"end": {
"line": 204,
"column": 10
}
},
"204": {
"start": {
"line": 205,
"column": 0
},
"end": {
"line": 205,
"column": 12
}
},
"205": {
"start": {
"line": 206,
"column": 0
},
"end": {
"line": 206,
"column": 133
}
},
"206": {
"start": {
"line": 207,
"column": 0
},
"end": {
"line": 207,
"column": 69
}
},
"207": {
"start": {
"line": 208,
"column": 0
},
"end": {
"line": 208,
"column": 5
}
},
"208": {
"start": {
"line": 209,
"column": 0
},
"end": {
"line": 209,
"column": 0
}
},
"209": {
"start": {
"line": 210,
"column": 0
},
"end": {
"line": 210,
"column": 21
}
},
"210": {
"start": {
"line": 211,
"column": 0
},
"end": {
"line": 211,
"column": 26
}
},
"211": {
"start": {
"line": 212,
"column": 0
},
"end": {
"line": 212,
"column": 59
}
},
"212": {
"start": {
"line": 213,
"column": 0
},
"end": {
"line": 213,
"column": 36
}
},
"213": {
"start": {
"line": 214,
"column": 0
},
"end": {
"line": 214,
"column": 38
}
},
"214": {
"start": {
"line": 215,
"column": 0
},
"end": {
"line": 215,
"column": 20
}
},
"215": {
"start": {
"line": 216,
"column": 0
},
"end": {
"line": 216,
"column": 7
}
},
"216": {
"start": {
"line": 217,
"column": 0
},
"end": {
"line": 217,
"column": 1
}
},
"217": {
"start": {
"line": 218,
"column": 0
},
"end": {
"line": 218,
"column": 0
}
},
"218": {
"start": {
"line": 219,
"column": 0
},
"end": {
"line": 219,
"column": 58
}
},
"219": {
"start": {
"line": 220,
"column": 0
},
"end": {
"line": 220,
"column": 16
}
},
"220": {
"start": {
"line": 221,
"column": 0
},
"end": {
"line": 221,
"column": 17
}
},
"221": {
"start": {
"line": 222,
"column": 0
},
"end": {
"line": 222,
"column": 143
}
},
"222": {
"start": {
"line": 223,
"column": 0
},
"end": {
"line": 223,
"column": 12
}
},
"223": {
"start": {
"line": 224,
"column": 0
},
"end": {
"line": 224,
"column": 130
}
},
"224": {
"start": {
"line": 225,
"column": 0
},
"end": {
"line": 225,
"column": 5
}
},
"225": {
"start": {
"line": 226,
"column": 0
},
"end": {
"line": 226,
"column": 0
}
},
"226": {
"start": {
"line": 227,
"column": 0
},
"end": {
"line": 227,
"column": 21
}
},
"227": {
"start": {
"line": 228,
"column": 0
},
"end": {
"line": 228,
"column": 18
}
},
"228": {
"start": {
"line": 229,
"column": 0
},
"end": {
"line": 229,
"column": 71
}
},
"229": {
"start": {
"line": 230,
"column": 0
},
"end": {
"line": 230,
"column": 48
}
},
"230": {
"start": {
"line": 231,
"column": 0
},
"end": {
"line": 231,
"column": 81
}
},
"231": {
"start": {
"line": 232,
"column": 0
},
"end": {
"line": 232,
"column": 27
}
},
"232": {
"start": {
"line": 233,
"column": 0
},
"end": {
"line": 233,
"column": 7
}
},
"233": {
"start": {
"line": 234,
"column": 0
},
"end": {
"line": 234,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 44,
"26": 44,
"27": 11,
"28": 11,
"29": 11,
"30": 11,
"31": 44,
"32": 44,
"33": 0,
"34": 0,
"35": 0,
"36": 11,
"37": 11,
"38": 11,
"39": 44,
"40": 0,
"41": 0,
"42": 0,
"43": 0,
"44": 1,
"45": 6,
"46": 6,
"47": 6,
"48": 1,
"49": 1,
"50": 1,
"51": 1,
"52": 1,
"53": 1,
"54": 1,
"55": 1,
"56": 1,
"57": 1,
"58": 1,
"59": 1,
"60": 1,
"61": 1,
"62": 1,
"63": 1,
"64": 6,
"65": 0,
"66": 0,
"67": 0,
"68": 0,
"69": 1,
"70": 0,
"71": 0,
"72": 0,
"73": 0,
"74": 0,
"75": 0,
"76": 0,
"77": 0,
"78": 0,
"79": 0,
"80": 0,
"81": 1,
"82": 3,
"83": 3,
"84": 3,
"85": 0,
"86": 0,
"87": 1,
"88": 3,
"89": 0,
"90": 0,
"91": 0,
"92": 0,
"93": 0,
"94": 1,
"95": 6,
"96": 6,
"97": 2,
"98": 2,
"99": 2,
"100": 6,
"101": 1,
"102": 6,
"103": 6,
"104": 1,
"105": 1,
"106": 1,
"107": 1,
"108": 1,
"109": 6,
"110": 0,
"111": 0,
"112": 1,
"113": 1,
"114": 1,
"115": 6,
"116": 0,
"117": 1,
"118": 1,
"119": 2,
"120": 2,
"121": 2,
"122": 0,
"123": 1,
"124": 2,
"125": 2,
"126": 2,
"127": 0,
"128": 1,
"129": 1,
"130": 0,
"131": 0,
"132": 0,
"133": 1,
"134": 1,
"135": 22,
"136": 22,
"137": 22,
"138": 11,
"139": 22,
"140": 0,
"141": 1,
"142": 6,
"143": 6,
"144": 6,
"145": 6,
"146": 6,
"147": 2,
"148": 2,
"149": 2,
"150": 6,
"151": 1,
"152": 1,
"153": 1,
"154": 1,
"155": 1,
"156": 1,
"157": 1,
"158": 1,
"159": 1,
"160": 1,
"161": 1,
"162": 1,
"163": 6,
"164": 0,
"165": 1,
"166": 4,
"167": 4,
"168": 0,
"169": 1,
"170": 2,
"171": 2,
"172": 2,
"173": 1,
"174": 11,
"175": 11,
"176": 11,
"177": 11,
"178": 11,
"179": 11,
"180": 11,
"181": 11,
"182": 11,
"183": 11,
"184": 11,
"185": 11,
"186": 11,
"187": 11,
"188": 11,
"189": 11,
"190": 11,
"191": 11,
"192": 11,
"193": 11,
"194": 11,
"195": 11,
"196": 1,
"197": 0,
"198": 0,
"199": 0,
"200": 0,
"201": 0,
"202": 0,
"203": 0,
"204": 0,
"205": 0,
"206": 0,
"207": 0,
"208": 0,
"209": 0,
"210": 0,
"211": 0,
"212": 0,
"213": 0,
"214": 0,
"215": 0,
"216": 0,
"217": 1,
"218": 0,
"219": 0,
"220": 0,
"221": 0,
"222": 0,
"223": 0,
"224": 0,
"225": 0,
"226": 0,
"227": 0,
"228": 0,
"229": 0,
"230": 0,
"231": 0,
"232": 0,
"233": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 234,
"loc": {
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
},
"locations": [
{
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 234,
"loc": {
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
},
"locations": [
{
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 26,
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 44,
"column": 1
}
},
"locations": [
{
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 44,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 27,
"loc": {
"start": {
"line": 27,
"column": 4
},
"end": {
"line": 32,
"column": 10
}
},
"locations": [
{
"start": {
"line": 27,
"column": 4
},
"end": {
"line": 32,
"column": 10
}
}
]
},
"4": {
"type": "branch",
"line": 33,
"loc": {
"start": {
"line": 33,
"column": 6
},
"end": {
"line": 36,
"column": 5
}
},
"locations": [
{
"start": {
"line": 33,
"column": 6
},
"end": {
"line": 36,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 36,
"loc": {
"start": {
"line": 36,
"column": 5
},
"end": {
"line": 40,
"column": 11
}
},
"locations": [
{
"start": {
"line": 36,
"column": 5
},
"end": {
"line": 40,
"column": 11
}
}
]
},
"6": {
"type": "branch",
"line": 40,
"loc": {
"start": {
"line": 40,
"column": 4
},
"end": {
"line": 44,
"column": 1
}
},
"locations": [
{
"start": {
"line": 40,
"column": 4
},
"end": {
"line": 44,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 46,
"loc": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"8": {
"type": "branch",
"line": 48,
"loc": {
"start": {
"line": 48,
"column": 4
},
"end": {
"line": 48,
"column": 8
}
},
"locations": [
{
"start": {
"line": 48,
"column": 4
},
"end": {
"line": 48,
"column": 8
}
}
]
},
"9": {
"type": "branch",
"line": 48,
"loc": {
"start": {
"line": 48,
"column": 51
},
"end": {
"line": 65,
"column": 11
}
},
"locations": [
{
"start": {
"line": 48,
"column": 51
},
"end": {
"line": 65,
"column": 11
}
}
]
},
"10": {
"type": "branch",
"line": 65,
"loc": {
"start": {
"line": 65,
"column": 4
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 65,
"column": 4
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"11": {
"type": "branch",
"line": 83,
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 94,
"column": 1
}
},
"locations": [
{
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 94,
"column": 1
}
}
]
},
"12": {
"type": "branch",
"line": 85,
"loc": {
"start": {
"line": 85,
"column": 4
},
"end": {
"line": 85,
"column": 8
}
},
"locations": [
{
"start": {
"line": 85,
"column": 4
},
"end": {
"line": 85,
"column": 8
}
}
]
},
"13": {
"type": "branch",
"line": 85,
"loc": {
"start": {
"line": 85,
"column": 51
},
"end": {
"line": 87,
"column": 5
}
},
"locations": [
{
"start": {
"line": 85,
"column": 51
},
"end": {
"line": 87,
"column": 5
}
}
]
},
"14": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 5
},
"end": {
"line": 89,
"column": 10
}
},
"locations": [
{
"start": {
"line": 87,
"column": 5
},
"end": {
"line": 89,
"column": 10
}
}
]
},
"15": {
"type": "branch",
"line": 89,
"loc": {
"start": {
"line": 89,
"column": 4
},
"end": {
"line": 94,
"column": 1
}
},
"locations": [
{
"start": {
"line": 89,
"column": 4
},
"end": {
"line": 94,
"column": 1
}
}
]
},
"16": {
"type": "branch",
"line": 96,
"loc": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 117,
"column": 1
}
},
"locations": [
{
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 117,
"column": 1
}
}
]
},
"17": {
"type": "branch",
"line": 97,
"loc": {
"start": {
"line": 97,
"column": 37
},
"end": {
"line": 101,
"column": 14
}
},
"locations": [
{
"start": {
"line": 97,
"column": 37
},
"end": {
"line": 101,
"column": 14
}
}
]
},
"18": {
"type": "branch",
"line": 101,
"loc": {
"start": {
"line": 101,
"column": 8
},
"end": {
"line": 102,
"column": 41
}
},
"locations": [
{
"start": {
"line": 101,
"column": 8
},
"end": {
"line": 102,
"column": 41
}
}
]
},
"19": {
"type": "branch",
"line": 101,
"loc": {
"start": {
"line": 101,
"column": 8
},
"end": {
"line": 103,
"column": 28
}
},
"locations": [
{
"start": {
"line": 101,
"column": 8
},
"end": {
"line": 103,
"column": 28
}
}
]
},
"20": {
"type": "branch",
"line": 104,
"loc": {
"start": {
"line": 104,
"column": 6
},
"end": {
"line": 110,
"column": 8
}
},
"locations": [
{
"start": {
"line": 104,
"column": 6
},
"end": {
"line": 110,
"column": 8
}
}
]
},
"21": {
"type": "branch",
"line": 110,
"loc": {
"start": {
"line": 110,
"column": 25
},
"end": {
"line": 112,
"column": 5
}
},
"locations": [
{
"start": {
"line": 110,
"column": 25
},
"end": {
"line": 112,
"column": 5
}
}
]
},
"22": {
"type": "branch",
"line": 112,
"loc": {
"start": {
"line": 112,
"column": 5
},
"end": {
"line": 116,
"column": 11
}
},
"locations": [
{
"start": {
"line": 112,
"column": 5
},
"end": {
"line": 116,
"column": 11
}
}
]
},
"23": {
"type": "branch",
"line": 116,
"loc": {
"start": {
"line": 116,
"column": 4
},
"end": {
"line": 117,
"column": 1
}
},
"locations": [
{
"start": {
"line": 116,
"column": 4
},
"end": {
"line": 117,
"column": 1
}
}
]
},
"24": {
"type": "branch",
"line": 120,
"loc": {
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 123,
"column": 1
}
},
"locations": [
{
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 123,
"column": 1
}
}
]
},
"25": {
"type": "branch",
"line": 121,
"loc": {
"start": {
"line": 121,
"column": 4
},
"end": {
"line": 122,
"column": 11
}
},
"locations": [
{
"start": {
"line": 121,
"column": 4
},
"end": {
"line": 122,
"column": 11
}
}
]
},
"26": {
"type": "branch",
"line": 122,
"loc": {
"start": {
"line": 122,
"column": 4
},
"end": {
"line": 123,
"column": 1
}
},
"locations": [
{
"start": {
"line": 122,
"column": 4
},
"end": {
"line": 123,
"column": 1
}
}
]
},
"27": {
"type": "branch",
"line": 122,
"loc": {
"start": {
"line": 122,
"column": 25
},
"end": {
"line": 122,
"column": 44
}
},
"locations": [
{
"start": {
"line": 122,
"column": 25
},
"end": {
"line": 122,
"column": 44
}
}
]
},
"28": {
"type": "branch",
"line": 125,
"loc": {
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 128,
"column": 1
}
},
"locations": [
{
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 128,
"column": 1
}
}
]
},
"29": {
"type": "branch",
"line": 126,
"loc": {
"start": {
"line": 126,
"column": 4
},
"end": {
"line": 127,
"column": 11
}
},
"locations": [
{
"start": {
"line": 126,
"column": 4
},
"end": {
"line": 127,
"column": 11
}
}
]
},
"30": {
"type": "branch",
"line": 127,
"loc": {
"start": {
"line": 127,
"column": 4
},
"end": {
"line": 128,
"column": 1
}
},
"locations": [
{
"start": {
"line": 127,
"column": 4
},
"end": {
"line": 128,
"column": 1
}
}
]
},
"31": {
"type": "branch",
"line": 136,
"loc": {
"start": {
"line": 136,
"column": 0
},
"end": {
"line": 141,
"column": 1
}
},
"locations": [
{
"start": {
"line": 136,
"column": 0
},
"end": {
"line": 141,
"column": 1
}
}
]
},
"32": {
"type": "branch",
"line": 138,
"loc": {
"start": {
"line": 138,
"column": 15
},
"end": {
"line": 140,
"column": 11
}
},
"locations": [
{
"start": {
"line": 138,
"column": 15
},
"end": {
"line": 140,
"column": 11
}
}
]
},
"33": {
"type": "branch",
"line": 140,
"loc": {
"start": {
"line": 140,
"column": 4
},
"end": {
"line": 141,
"column": 1
}
},
"locations": [
{
"start": {
"line": 140,
"column": 4
},
"end": {
"line": 141,
"column": 1
}
}
]
},
"34": {
"type": "branch",
"line": 143,
"loc": {
"start": {
"line": 143,
"column": 0
},
"end": {
"line": 165,
"column": 1
}
},
"locations": [
{
"start": {
"line": 143,
"column": 0
},
"end": {
"line": 165,
"column": 1
}
}
]
},
"35": {
"type": "branch",
"line": 147,
"loc": {
"start": {
"line": 147,
"column": 4
},
"end": {
"line": 151,
"column": 10
}
},
"locations": [
{
"start": {
"line": 147,
"column": 4
},
"end": {
"line": 151,
"column": 10
}
}
]
},
"36": {
"type": "branch",
"line": 151,
"loc": {
"start": {
"line": 151,
"column": 4
},
"end": {
"line": 164,
"column": 11
}
},
"locations": [
{
"start": {
"line": 151,
"column": 4
},
"end": {
"line": 164,
"column": 11
}
}
]
},
"37": {
"type": "branch",
"line": 164,
"loc": {
"start": {
"line": 164,
"column": 4
},
"end": {
"line": 165,
"column": 1
}
},
"locations": [
{
"start": {
"line": 164,
"column": 4
},
"end": {
"line": 165,
"column": 1
}
}
]
},
"38": {
"type": "branch",
"line": 167,
"loc": {
"start": {
"line": 167,
"column": 0
},
"end": {
"line": 169,
"column": 1
}
},
"locations": [
{
"start": {
"line": 167,
"column": 0
},
"end": {
"line": 169,
"column": 1
}
}
]
},
"39": {
"type": "branch",
"line": 168,
"loc": {
"start": {
"line": 168,
"column": 4
},
"end": {
"line": 169,
"column": 1
}
},
"locations": [
{
"start": {
"line": 168,
"column": 4
},
"end": {
"line": 169,
"column": 1
}
}
]
},
"40": {
"type": "branch",
"line": 171,
"loc": {
"start": {
"line": 171,
"column": 0
},
"end": {
"line": 173,
"column": 1
}
},
"locations": [
{
"start": {
"line": 171,
"column": 0
},
"end": {
"line": 173,
"column": 1
}
}
]
},
"41": {
"type": "branch",
"line": 175,
"loc": {
"start": {
"line": 175,
"column": 0
},
"end": {
"line": 196,
"column": 1
}
},
"locations": [
{
"start": {
"line": 175,
"column": 0
},
"end": {
"line": 196,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
44
],
"3": [
11
],
"4": [
0
],
"5": [
11
],
"6": [
0
],
"7": [
6
],
"8": [
2
],
"9": [
1
],
"10": [
0
],
"11": [
3
],
"12": [
1
],
"13": [
0
],
"14": [
1
],
"15": [
0
],
"16": [
6
],
"17": [
2
],
"18": [
1
],
"19": [
1
],
"20": [
1
],
"21": [
0
],
"22": [
1
],
"23": [
0
],
"24": [
2
],
"25": [
1
],
"26": [
0
],
"27": [
4
],
"28": [
2
],
"29": [
1
],
"30": [
0
],
"31": [
22
],
"32": [
11
],
"33": [
0
],
"34": [
6
],
"35": [
2
],
"36": [
1
],
"37": [
0
],
"38": [
4
],
"39": [
0
],
"40": [
2
],
"41": [
11
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
},
"loc": {
"start": {
"line": 234,
"column": 1
},
"end": {
"line": 234,
"column": 1
}
},
"line": 234
},
"1": {
"name": "login",
"decl": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 44,
"column": 1
}
},
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 44,
"column": 1
}
},
"line": 26
},
"2": {
"name": "register",
"decl": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"loc": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"line": 46
},
"3": {
"name": "verifyEmail",
"decl": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"loc": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"line": 71
},
"4": {
"name": "create",
"decl": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 94,
"column": 1
}
},
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 94,
"column": 1
}
},
"line": 83
},
"5": {
"name": "update",
"decl": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 117,
"column": 1
}
},
"loc": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 117,
"column": 1
}
},
"line": 96
},
"6": {
"name": "getAll",
"decl": {
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 123,
"column": 1
}
},
"loc": {
"start": {
"line": 120,
"column": 0
},
"end": {
"line": 123,
"column": 1
}
},
"line": 120
},
"7": {
"name": "getById",
"decl": {
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 128,
"column": 1
}
},
"loc": {
"start": {
"line": 125,
"column": 0
},
"end": {
"line": 128,
"column": 1
}
},
"line": 125
},
"8": {
"name": "_delete",
"decl": {
"start": {
"line": 131,
"column": 0
},
"end": {
"line": 133,
"column": 1
}
},
"loc": {
"start": {
"line": 131,
"column": 0
},
"end": {
"line": 133,
"column": 1
}
},
"line": 131
},
"9": {
"name": "getAccount",
"decl": {
"start": {
"line": 136,
"column": 0
},
"end": {
"line": 141,
"column": 1
}
},
"loc": {
"start": {
"line": 136,
"column": 0
},
"end": {
"line": 141,
"column": 1
}
},
"line": 136
},
"10": {
"name": "insertUser",
"decl": {
"start": {
"line": 143,
"column": 0
},
"end": {
"line": 165,
"column": 1
}
},
"loc": {
"start": {
"line": 143,
"column": 0
},
"end": {
"line": 165,
"column": 1
}
},
"line": 143
},
"11": {
"name": "hash",
"decl": {
"start": {
"line": 167,
"column": 0
},
"end": {
"line": 169,
"column": 1
}
},
"loc": {
"start": {
"line": 167,
"column": 0
},
"end": {
"line": 169,
"column": 1
}
},
"line": 167
},
"12": {
"name": "randomTokenString",
"decl": {
"start": {
"line": 171,
"column": 0
},
"end": {
"line": 173,
"column": 1
}
},
"loc": {
"start": {
"line": 171,
"column": 0
},
"end": {
"line": 173,
"column": 1
}
},
"line": 171
},
"13": {
"name": "basicDetails",
"decl": {
"start": {
"line": 175,
"column": 0
},
"end": {
"line": 196,
"column": 1
}
},
"loc": {
"start": {
"line": 175,
"column": 0
},
"end": {
"line": 196,
"column": 1
}
},
"line": 175
},
"14": {
"name": "sendVerificationEmail",
"decl": {
"start": {
"line": 198,
"column": 0
},
"end": {
"line": 217,
"column": 1
}
},
"loc": {
"start": {
"line": 198,
"column": 0
},
"end": {
"line": 217,
"column": 1
}
},
"line": 198
},
"15": {
"name": "sendAlreadyRegisteredEmail",
"decl": {
"start": {
"line": 219,
"column": 0
},
"end": {
"line": 234,
"column": 1
}
},
"loc": {
"start": {
"line": 219,
"column": 0
},
"end": {
"line": 234,
"column": 1
}
},
"line": 219
}
},
"f": {
"0": 1,
"1": 44,
"2": 6,
"3": 0,
"4": 3,
"5": 6,
"6": 2,
"7": 2,
"8": 0,
"9": 22,
"10": 6,
"11": 4,
"12": 2,
"13": 11,
"14": 0,
"15": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/auth/auth.validators.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 70
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 44
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 43
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 42
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 61
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 48
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 47
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 49
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 76
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 7
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 39
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 2
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 0
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 44
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 31
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 47
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 49
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 7
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 39
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 2
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 44
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 25
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 42
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 41
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 46
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 44
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 60
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 48
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 75
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 6
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 0
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 49
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 79
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 0
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 39
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 2
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 0
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 49
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 31
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 39
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 7
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 39
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 4,
"5": 4,
"6": 4,
"7": 4,
"8": 4,
"9": 4,
"10": 4,
"11": 4,
"12": 4,
"13": 4,
"14": 4,
"15": 1,
"16": 1,
"17": 11,
"18": 11,
"19": 11,
"20": 11,
"21": 11,
"22": 11,
"23": 1,
"24": 1,
"25": 2,
"26": 2,
"27": 2,
"28": 2,
"29": 2,
"30": 2,
"31": 2,
"32": 2,
"33": 2,
"34": 2,
"35": 2,
"36": 2,
"37": 2,
"38": 2,
"39": 2,
"40": 1,
"41": 1,
"42": 0,
"43": 0,
"44": 0,
"45": 0,
"46": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
},
"locations": [
{
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
},
"locations": [
{
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 15,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 15,
"column": 2
}
}
]
},
"3": {
"type": "branch",
"line": 17,
"loc": {
"start": {
"line": 17,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 17,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
}
]
},
"4": {
"type": "branch",
"line": 25,
"loc": {
"start": {
"line": 25,
"column": 23
},
"end": {
"line": 40,
"column": 2
}
},
"locations": [
{
"start": {
"line": 25,
"column": 23
},
"end": {
"line": 40,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
4
],
"3": [
11
],
"4": [
2
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
},
"loc": {
"start": {
"line": 47,
"column": 2
},
"end": {
"line": 47,
"column": 2
}
},
"line": 47
},
"1": {
"name": "Object.<anonymous>.exports.signupSchema",
"decl": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 15,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 15,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.signinSchema",
"decl": {
"start": {
"line": 17,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"loc": {
"start": {
"line": 17,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"line": 17
},
"3": {
"name": "Object.<anonymous>.exports.updateSchema",
"decl": {
"start": {
"line": 25,
"column": 23
},
"end": {
"line": 40,
"column": 2
}
},
"loc": {
"start": {
"line": 25,
"column": 23
},
"end": {
"line": 40,
"column": 2
}
},
"line": 25
},
"4": {
"name": "Object.<anonymous>.exports.verifyEmailSchema",
"decl": {
"start": {
"line": 42,
"column": 28
},
"end": {
"line": 47,
"column": 2
}
},
"loc": {
"start": {
"line": 42,
"column": 28
},
"end": {
"line": 47,
"column": 2
}
},
"line": 42
}
},
"f": {
"0": 1,
"1": 4,
"2": 11,
"3": 2,
"4": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 60
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 49
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 29
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 28
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 35
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 29
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 22
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 5
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 1
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 25
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 3,
"7": 3,
"8": 1,
"9": 1,
"10": 0,
"11": 0,
"12": 1,
"13": 1,
"14": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
},
"locations": [
{
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
}
]
},
"1": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
},
"locations": [
{
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
}
]
},
"2": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"locations": [
{
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
3
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
},
"loc": {
"start": {
"line": 15,
"column": 25
},
"end": {
"line": 15,
"column": 25
}
},
"line": 15
},
"1": {
"name": "Account",
"decl": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"line": 5
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"line": 6
},
"3": {
"name": "get jsonSchema",
"decl": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
},
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
},
"line": 10
}
},
"f": {
"0": 1,
"1": 0,
"2": 3,
"3": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/accounts/accounts.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 44
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 44
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 44
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 70
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 42
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 22
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 72
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 24
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 44
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 9
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 58
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 72
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 12
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 54
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 46
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 11
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 0
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 24
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 35
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 9
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 27
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 21
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 20
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 5
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 2,
"14": 2,
"15": 2,
"16": 2,
"17": 2,
"18": 2,
"19": 2,
"20": 1,
"21": 1,
"22": 1,
"23": 2,
"24": 0,
"25": 0,
"26": 1,
"27": 1,
"28": 2,
"29": 0,
"30": 0,
"31": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 32,
"loc": {
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 32,
"loc": {
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 8
},
"end": {
"line": 24,
"column": 12
}
},
"locations": [
{
"start": {
"line": 20,
"column": 8
},
"end": {
"line": 24,
"column": 12
}
}
]
},
"4": {
"type": "branch",
"line": 24,
"loc": {
"start": {
"line": 24,
"column": 23
},
"end": {
"line": 26,
"column": 9
}
},
"locations": [
{
"start": {
"line": 24,
"column": 23
},
"end": {
"line": 26,
"column": 9
}
}
]
},
"5": {
"type": "branch",
"line": 26,
"loc": {
"start": {
"line": 26,
"column": 9
},
"end": {
"line": 29,
"column": 6
}
},
"locations": [
{
"start": {
"line": 26,
"column": 9
},
"end": {
"line": 29,
"column": 6
}
}
]
},
"6": {
"type": "branch",
"line": 29,
"loc": {
"start": {
"line": 29,
"column": 6
},
"end": {
"line": 31,
"column": 5
}
},
"locations": [
{
"start": {
"line": 29,
"column": 6
},
"end": {
"line": 31,
"column": 5
}
}
]
},
"7": {
"type": "branch",
"line": 31,
"loc": {
"start": {
"line": 31,
"column": 5
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 31,
"column": 5
},
"end": {
"line": 32,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
1
],
"4": [
0
],
"5": [
1
],
"6": [
0
],
"7": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
},
"loc": {
"start": {
"line": 32,
"column": 1
},
"end": {
"line": 32,
"column": 1
}
},
"line": 32
},
"1": {
"name": "getAccounts",
"decl": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"line": 14
}
},
"f": {
"0": 1,
"1": 2
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 57
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 48
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 29
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 28
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 34
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 29
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 22
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 5
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 35
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 69
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 51
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 61
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 50
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 16
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 20
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 53
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 33
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 23
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 59
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 48
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 18
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 14
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 23
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 48
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 36
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 23
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 53
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 60
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 18
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 14
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 20
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 48
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 33
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 23
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 53
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 56
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 18
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 14
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 10
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 5
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 0
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 25
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 81,
"7": 81,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 49,
"loc": {
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
},
"locations": [
{
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
}
]
},
"1": {
"type": "branch",
"line": 49,
"loc": {
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
},
"locations": [
{
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
}
]
},
"2": {
"type": "branch",
"line": 5,
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"locations": [
{
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"locations": [
{
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
},
"locations": [
{
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 46,
"column": 5
}
},
"locations": [
{
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 46,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
20
],
"3": [
81
],
"4": [
1
],
"5": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
},
"loc": {
"start": {
"line": 49,
"column": 25
},
"end": {
"line": 49,
"column": 25
}
},
"line": 49
},
"1": {
"name": "Company",
"decl": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"line": 5
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"line": 6
},
"3": {
"name": "get jsonSchema",
"decl": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
},
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 12,
"column": 5
}
},
"line": 10
},
"4": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 46,
"column": 5
}
},
"loc": {
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 46,
"column": 5
}
},
"line": 14
}
},
"f": {
"0": 1,
"1": 20,
"2": 81,
"3": 1,
"4": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 71
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 52
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 58
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 41
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 59
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 54
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 43
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 46
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 31
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 22
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 3
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 0
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 28
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 45
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 38
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 40
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 0
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 59
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 63
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 53
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 56
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 67
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 70
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 24
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 0
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 33
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 36
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 18
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 25
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 45
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 21
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 0
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 42
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 18
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 26
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 30
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 55
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 10
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 21
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 41
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 18
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 36
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 28
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 65
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 9
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 21
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 41
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 66
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 18
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 38
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 28
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 16
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 51
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 44
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 15
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 73
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 13
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 0
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 30
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 10
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 21
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 0
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 33
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 42
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 18
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 78
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 45
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 21
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 0
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 41
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 49
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 18
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 72
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 21
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 54
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 10
}
},
"85": {
"start": {
"line": 86,
"column": 0
},
"end": {
"line": 86,
"column": 21
}
},
"86": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 87,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 1,
"49": 1,
"50": 1,
"51": 1,
"52": 1,
"53": 3,
"54": 3,
"55": 3,
"56": 3,
"57": 3,
"58": 3,
"59": 3,
"60": 1,
"61": 3,
"62": 1,
"63": 1,
"64": 2,
"65": 2,
"66": 2,
"67": 3,
"68": 3,
"69": 1,
"70": 6,
"71": 6,
"72": 6,
"73": 6,
"74": 6,
"75": 6,
"76": 6,
"77": 1,
"78": 2,
"79": 2,
"80": 2,
"81": 2,
"82": 2,
"83": 1,
"84": 1,
"85": 2,
"86": 2
},
"branchMap": {
"0": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
},
"locations": [
{
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
},
"locations": [
{
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"locations": [
{
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 34,
"loc": {
"start": {
"line": 34,
"column": 15
},
"end": {
"line": 34,
"column": 30
}
},
"locations": [
{
"start": {
"line": 34,
"column": 15
},
"end": {
"line": 34,
"column": 30
}
}
]
},
"4": {
"type": "branch",
"line": 38,
"loc": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"locations": [
{
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 41,
"loc": {
"start": {
"line": 41,
"column": 15
},
"end": {
"line": 43,
"column": 10
}
},
"locations": [
{
"start": {
"line": 41,
"column": 15
},
"end": {
"line": 43,
"column": 10
}
}
]
},
"6": {
"type": "branch",
"line": 46,
"loc": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 49,
"loc": {
"start": {
"line": 49,
"column": 15
},
"end": {
"line": 50,
"column": 49
}
},
"locations": [
{
"start": {
"line": 49,
"column": 15
},
"end": {
"line": 50,
"column": 49
}
}
]
},
"8": {
"type": "branch",
"line": 50,
"loc": {
"start": {
"line": 50,
"column": 21
},
"end": {
"line": 50,
"column": 49
}
},
"locations": [
{
"start": {
"line": 50,
"column": 21
},
"end": {
"line": 50,
"column": 49
}
}
]
},
"9": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"locations": [
{
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
}
]
},
"10": {
"type": "branch",
"line": 58,
"loc": {
"start": {
"line": 58,
"column": 15
},
"end": {
"line": 67,
"column": 10
}
},
"locations": [
{
"start": {
"line": 58,
"column": 15
},
"end": {
"line": 67,
"column": 10
}
}
]
},
"11": {
"type": "branch",
"line": 60,
"loc": {
"start": {
"line": 60,
"column": 16
},
"end": {
"line": 61,
"column": 44
}
},
"locations": [
{
"start": {
"line": 60,
"column": 16
},
"end": {
"line": 61,
"column": 44
}
}
]
},
"12": {
"type": "branch",
"line": 62,
"loc": {
"start": {
"line": 62,
"column": 14
},
"end": {
"line": 64,
"column": 13
}
},
"locations": [
{
"start": {
"line": 62,
"column": 14
},
"end": {
"line": 64,
"column": 13
}
}
]
},
"13": {
"type": "branch",
"line": 64,
"loc": {
"start": {
"line": 64,
"column": 13
},
"end": {
"line": 67,
"column": 10
}
},
"locations": [
{
"start": {
"line": 64,
"column": 13
},
"end": {
"line": 67,
"column": 10
}
}
]
},
"14": {
"type": "branch",
"line": 71,
"loc": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"locations": [
{
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
}
]
},
"15": {
"type": "branch",
"line": 75,
"loc": {
"start": {
"line": 75,
"column": 15
},
"end": {
"line": 75,
"column": 30
}
},
"locations": [
{
"start": {
"line": 75,
"column": 15
},
"end": {
"line": 75,
"column": 30
}
}
]
},
"16": {
"type": "branch",
"line": 79,
"loc": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 87,
"column": 1
}
},
"locations": [
{
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 87,
"column": 1
}
}
]
},
"17": {
"type": "branch",
"line": 83,
"loc": {
"start": {
"line": 83,
"column": 14
},
"end": {
"line": 85,
"column": 10
}
},
"locations": [
{
"start": {
"line": 83,
"column": 14
},
"end": {
"line": 85,
"column": 10
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
1
],
"4": [
1
],
"5": [
1
],
"6": [
1
],
"7": [
1
],
"8": [
0
],
"9": [
3
],
"10": [
3
],
"11": [
1
],
"12": [
1
],
"13": [
2
],
"14": [
6
],
"15": [
2
],
"16": [
2
],
"17": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
},
"loc": {
"start": {
"line": 87,
"column": 1
},
"end": {
"line": 87,
"column": 1
}
},
"line": 87
},
"1": {
"name": "create",
"decl": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"loc": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"line": 30
},
"2": {
"name": "getAllCompanies",
"decl": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"loc": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"line": 38
},
"3": {
"name": "getMyCompanies",
"decl": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"line": 46
},
"4": {
"name": "getCompanyById",
"decl": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"loc": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"line": 54
},
"5": {
"name": "update",
"decl": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"loc": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"line": 71
},
"6": {
"name": "_deleteCompany",
"decl": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 87,
"column": 1
}
},
"loc": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 87,
"column": 1
}
},
"line": 79
}
},
"f": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 3,
"5": 6,
"6": 2
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 52
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 43
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 43
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 18
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 11
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 18
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 20
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 19
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 19
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 12
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 2
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 31
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 38
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 50
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 66
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 5
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 57
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 19
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 0
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 51
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 57
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 0
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 19
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 30
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 5
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 0
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 35
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 8
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 22
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 39
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 49
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 7
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 54
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 5
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 0
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 67
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 23
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 9
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 22
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 9
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 6
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 0
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 26
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 0
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 34
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 44
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 21
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 0
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 40
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 51
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 26
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 7
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 21
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 0
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 35
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 45
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 19
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 0
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 37
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 54
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 0
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 22
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 36
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 21
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 39
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 5
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 0
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 30
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 0
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 35
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 18
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 41
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 0
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 4
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 0
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 33
}
},
"85": {
"start": {
"line": 86,
"column": 0
},
"end": {
"line": 86,
"column": 0
}
},
"86": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 87,
"column": 34
}
},
"87": {
"start": {
"line": 88,
"column": 0
},
"end": {
"line": 88,
"column": 41
}
},
"88": {
"start": {
"line": 89,
"column": 0
},
"end": {
"line": 89,
"column": 28
}
},
"89": {
"start": {
"line": 90,
"column": 0
},
"end": {
"line": 90,
"column": 17
}
},
"90": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 91,
"column": 19
}
},
"91": {
"start": {
"line": 92,
"column": 0
},
"end": {
"line": 92,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 3,
"14": 3,
"15": 3,
"16": 0,
"17": 0,
"18": 1,
"19": 1,
"20": 3,
"21": 0,
"22": 1,
"23": 17,
"24": 17,
"25": 6,
"26": 17,
"27": 2,
"28": 2,
"29": 4,
"30": 4,
"31": 4,
"32": 4,
"33": 3,
"34": 17,
"35": 17,
"36": 2,
"37": 2,
"38": 2,
"39": 2,
"40": 2,
"41": 2,
"42": 2,
"43": 2,
"44": 2,
"45": 2,
"46": 17,
"47": 0,
"48": 1,
"49": 2,
"50": 2,
"51": 2,
"52": 0,
"53": 1,
"54": 2,
"55": 2,
"56": 1,
"57": 1,
"58": 2,
"59": 0,
"60": 1,
"61": 6,
"62": 6,
"63": 6,
"64": 0,
"65": 1,
"66": 5,
"67": 5,
"68": 2,
"69": 5,
"70": 1,
"71": 1,
"72": 1,
"73": 1,
"74": 1,
"75": 5,
"76": 0,
"77": 1,
"78": 1,
"79": 1,
"80": 1,
"81": 1,
"82": 1,
"83": 1,
"84": 1,
"85": 1,
"86": 30,
"87": 30,
"88": 30,
"89": 15,
"90": 30,
"91": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 92,
"loc": {
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
},
"locations": [
{
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 92,
"loc": {
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
},
"locations": [
{
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"locations": [
{
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 4
},
"end": {
"line": 16,
"column": 8
}
},
"locations": [
{
"start": {
"line": 16,
"column": 4
},
"end": {
"line": 16,
"column": 8
}
}
]
},
"4": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 49
},
"end": {
"line": 18,
"column": 5
}
},
"locations": [
{
"start": {
"line": 16,
"column": 49
},
"end": {
"line": 18,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 18,
"loc": {
"start": {
"line": 18,
"column": 5
},
"end": {
"line": 21,
"column": 11
}
},
"locations": [
{
"start": {
"line": 18,
"column": 5
},
"end": {
"line": 21,
"column": 11
}
}
]
},
"6": {
"type": "branch",
"line": 21,
"loc": {
"start": {
"line": 21,
"column": 4
},
"end": {
"line": 22,
"column": 1
}
},
"locations": [
{
"start": {
"line": 21,
"column": 4
},
"end": {
"line": 22,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 24,
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"locations": [
{
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
}
]
},
"8": {
"type": "branch",
"line": 25,
"loc": {
"start": {
"line": 25,
"column": 4
},
"end": {
"line": 27,
"column": 8
}
},
"locations": [
{
"start": {
"line": 25,
"column": 4
},
"end": {
"line": 27,
"column": 8
}
}
]
},
"9": {
"type": "branch",
"line": 27,
"loc": {
"start": {
"line": 27,
"column": 18
},
"end": {
"line": 29,
"column": 5
}
},
"locations": [
{
"start": {
"line": 27,
"column": 18
},
"end": {
"line": 29,
"column": 5
}
}
]
},
"10": {
"type": "branch",
"line": 29,
"loc": {
"start": {
"line": 29,
"column": 5
},
"end": {
"line": 34,
"column": 39
}
},
"locations": [
{
"start": {
"line": 29,
"column": 5
},
"end": {
"line": 34,
"column": 39
}
}
]
},
"11": {
"type": "branch",
"line": 33,
"loc": {
"start": {
"line": 33,
"column": 8
},
"end": {
"line": 35,
"column": 28
}
},
"locations": [
{
"start": {
"line": 33,
"column": 8
},
"end": {
"line": 35,
"column": 28
}
}
]
},
"12": {
"type": "branch",
"line": 36,
"loc": {
"start": {
"line": 36,
"column": 6
},
"end": {
"line": 47,
"column": 11
}
},
"locations": [
{
"start": {
"line": 36,
"column": 6
},
"end": {
"line": 47,
"column": 11
}
}
]
},
"13": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 4
},
"end": {
"line": 48,
"column": 1
}
},
"locations": [
{
"start": {
"line": 47,
"column": 4
},
"end": {
"line": 48,
"column": 1
}
}
]
},
"14": {
"type": "branch",
"line": 50,
"loc": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"15": {
"type": "branch",
"line": 51,
"loc": {
"start": {
"line": 51,
"column": 4
},
"end": {
"line": 52,
"column": 11
}
},
"locations": [
{
"start": {
"line": 51,
"column": 4
},
"end": {
"line": 52,
"column": 11
}
}
]
},
"16": {
"type": "branch",
"line": 52,
"loc": {
"start": {
"line": 52,
"column": 4
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 52,
"column": 4
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"17": {
"type": "branch",
"line": 55,
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"locations": [
{
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
}
]
},
"18": {
"type": "branch",
"line": 56,
"loc": {
"start": {
"line": 56,
"column": 4
},
"end": {
"line": 59,
"column": 11
}
},
"locations": [
{
"start": {
"line": 56,
"column": 4
},
"end": {
"line": 59,
"column": 11
}
}
]
},
"19": {
"type": "branch",
"line": 59,
"loc": {
"start": {
"line": 59,
"column": 4
},
"end": {
"line": 60,
"column": 1
}
},
"locations": [
{
"start": {
"line": 59,
"column": 4
},
"end": {
"line": 60,
"column": 1
}
}
]
},
"20": {
"type": "branch",
"line": 62,
"loc": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"locations": [
{
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
}
]
},
"21": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 4
},
"end": {
"line": 64,
"column": 11
}
},
"locations": [
{
"start": {
"line": 63,
"column": 4
},
"end": {
"line": 64,
"column": 11
}
}
]
},
"22": {
"type": "branch",
"line": 64,
"loc": {
"start": {
"line": 64,
"column": 4
},
"end": {
"line": 65,
"column": 1
}
},
"locations": [
{
"start": {
"line": 64,
"column": 4
},
"end": {
"line": 65,
"column": 1
}
}
]
},
"23": {
"type": "branch",
"line": 67,
"loc": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"locations": [
{
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
}
]
},
"24": {
"type": "branch",
"line": 68,
"loc": {
"start": {
"line": 68,
"column": 4
},
"end": {
"line": 70,
"column": 8
}
},
"locations": [
{
"start": {
"line": 68,
"column": 4
},
"end": {
"line": 70,
"column": 8
}
}
]
},
"25": {
"type": "branch",
"line": 70,
"loc": {
"start": {
"line": 70,
"column": 21
},
"end": {
"line": 76,
"column": 11
}
},
"locations": [
{
"start": {
"line": 70,
"column": 21
},
"end": {
"line": 76,
"column": 11
}
}
]
},
"26": {
"type": "branch",
"line": 76,
"loc": {
"start": {
"line": 76,
"column": 4
},
"end": {
"line": 77,
"column": 1
}
},
"locations": [
{
"start": {
"line": 76,
"column": 4
},
"end": {
"line": 77,
"column": 1
}
}
]
},
"27": {
"type": "branch",
"line": 87,
"loc": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 92,
"column": 1
}
},
"locations": [
{
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 92,
"column": 1
}
}
]
},
"28": {
"type": "branch",
"line": 89,
"loc": {
"start": {
"line": 89,
"column": 15
},
"end": {
"line": 91,
"column": 11
}
},
"locations": [
{
"start": {
"line": 89,
"column": 15
},
"end": {
"line": 91,
"column": 11
}
}
]
},
"29": {
"type": "branch",
"line": 91,
"loc": {
"start": {
"line": 91,
"column": 4
},
"end": {
"line": 92,
"column": 1
}
},
"locations": [
{
"start": {
"line": 91,
"column": 4
},
"end": {
"line": 92,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
3
],
"3": [
1
],
"4": [
0
],
"5": [
1
],
"6": [
0
],
"7": [
17
],
"8": [
6
],
"9": [
2
],
"10": [
4
],
"11": [
3
],
"12": [
2
],
"13": [
0
],
"14": [
2
],
"15": [
1
],
"16": [
0
],
"17": [
2
],
"18": [
1
],
"19": [
0
],
"20": [
6
],
"21": [
3
],
"22": [
0
],
"23": [
5
],
"24": [
2
],
"25": [
1
],
"26": [
0
],
"27": [
30
],
"28": [
15
],
"29": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
},
"loc": {
"start": {
"line": 92,
"column": 1
},
"end": {
"line": 92,
"column": 1
}
},
"line": 92
},
"1": {
"name": "create",
"decl": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"line": 14
},
"2": {
"name": "updateCompany",
"decl": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 48,
"column": 1
}
},
"line": 24
},
"3": {
"name": "getAllCompanies",
"decl": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"line": 50
},
"4": {
"name": "getMyCompanies",
"decl": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"line": 55
},
"5": {
"name": "getCompanyById",
"decl": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"loc": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"line": 62
},
"6": {
"name": "_delete",
"decl": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"loc": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 77,
"column": 1
}
},
"line": 67
},
"7": {
"name": "getCompany",
"decl": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 92,
"column": 1
}
},
"loc": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 92,
"column": 1
}
},
"line": 87
}
},
"f": {
"0": 1,
"1": 3,
"2": 17,
"3": 2,
"4": 2,
"5": 6,
"6": 5,
"7": 30
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/company.validators.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 70
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 44
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 38
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 45
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 31
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 34
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 47
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 7
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 39
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 2
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 44
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 25
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 37
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 44
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 46
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 38
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 41
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 44
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 6
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 43
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 0
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 39
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 2,
"5": 2,
"6": 2,
"7": 2,
"8": 2,
"9": 2,
"10": 2,
"11": 2,
"12": 2,
"13": 1,
"14": 1,
"15": 6,
"16": 6,
"17": 6,
"18": 6,
"19": 6,
"20": 6,
"21": 6,
"22": 6,
"23": 6,
"24": 6,
"25": 6,
"26": 6,
"27": 6
},
"branchMap": {
"0": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
},
"locations": [
{
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
},
"locations": [
{
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 13,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 13,
"column": 2
}
}
]
},
"3": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 23
},
"end": {
"line": 28,
"column": 2
}
},
"locations": [
{
"start": {
"line": 15,
"column": 23
},
"end": {
"line": 28,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
6
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
},
"loc": {
"start": {
"line": 28,
"column": 2
},
"end": {
"line": 28,
"column": 2
}
},
"line": 28
},
"1": {
"name": "Object.<anonymous>.exports.createSchema",
"decl": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 13,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 13,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.updateSchema",
"decl": {
"start": {
"line": 15,
"column": 23
},
"end": {
"line": 28,
"column": 2
}
},
"loc": {
"start": {
"line": 15,
"column": 23
},
"end": {
"line": 28,
"column": 2
}
},
"line": 15
}
},
"f": {
"0": 1,
"1": 2,
"2": 6
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 37
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 49
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 63
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 30
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 28
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 35
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 5
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 29
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 22
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 5
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 35
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 69
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 46
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 50
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 16
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 19
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 53
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 33
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 23
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 59
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 48
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 18
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 14
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 20
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 48
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 33
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 23
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 54
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 57
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 18
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 14
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 10
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 5
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 1
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 0
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 15
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 0
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 26
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 41,
"8": 41,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
},
"locations": [
{
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
}
]
},
"1": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
},
"locations": [
{
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
}
]
},
"2": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"locations": [
{
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 7,
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"locations": [
{
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"locations": [
{
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"locations": [
{
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
3
],
"3": [
41
],
"4": [
1
],
"5": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
},
"loc": {
"start": {
"line": 43,
"column": 26
},
"end": {
"line": 43,
"column": 26
}
},
"line": 43
},
"1": {
"name": "Category",
"decl": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"line": 6
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"line": 7
},
"3": {
"name": "get jsonSchema",
"decl": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"line": 11
},
"4": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"line": 15
}
},
"f": {
"0": 1,
"1": 3,
"2": 41,
"3": 1,
"4": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 72
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 73
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 47
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 43
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 54
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 49
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 31
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 22
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 3
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 70
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 39
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 0
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 47
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 70
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 40
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 36
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 74
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 70
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 24
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 0
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 33
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 19
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 33
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 47
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 21
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 0
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 49
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 49
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 0
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 19
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 44
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 29
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 67
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 9
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 21
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 1
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 0
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 42
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 39
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 19
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 28
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 27
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 63
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 9
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 21
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 0
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 33
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 51
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 29
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 39
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 51
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 0
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 19
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 36
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 27
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 63
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 9
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 21
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 0
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 42
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 58
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 21
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 36
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 46
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 6
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 0
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 19
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 25
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 21
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 41
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 10
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 21
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 2,
"34": 2,
"35": 2,
"36": 2,
"37": 2,
"38": 2,
"39": 2,
"40": 2,
"41": 2,
"42": 2,
"43": 1,
"44": 2,
"45": 2,
"46": 2,
"47": 2,
"48": 2,
"49": 2,
"50": 2,
"51": 2,
"52": 2,
"53": 1,
"54": 1,
"55": 1,
"56": 1,
"57": 1,
"58": 1,
"59": 1,
"60": 1,
"61": 1,
"62": 1,
"63": 1,
"64": 1,
"65": 1,
"66": 1,
"67": 1,
"68": 1,
"69": 1,
"70": 1,
"71": 1,
"72": 1,
"73": 1,
"74": 1,
"75": 1,
"76": 1,
"77": 1,
"78": 1,
"79": 1,
"80": 1,
"81": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 82,
"loc": {
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
},
"locations": [
{
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 82,
"loc": {
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
},
"locations": [
{
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 27,
"loc": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 34,
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 43,
"column": 1
}
},
"locations": [
{
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 43,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 40,
"column": 51
}
},
"locations": [
{
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 40,
"column": 51
}
}
]
},
"5": {
"type": "branch",
"line": 40,
"loc": {
"start": {
"line": 40,
"column": 22
},
"end": {
"line": 40,
"column": 28
}
},
"locations": [
{
"start": {
"line": 40,
"column": 22
},
"end": {
"line": 40,
"column": 28
}
}
]
},
"6": {
"type": "branch",
"line": 45,
"loc": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 49,
"loc": {
"start": {
"line": 49,
"column": 15
},
"end": {
"line": 50,
"column": 47
}
},
"locations": [
{
"start": {
"line": 49,
"column": 15
},
"end": {
"line": 50,
"column": 47
}
}
]
},
"8": {
"type": "branch",
"line": 50,
"loc": {
"start": {
"line": 50,
"column": 20
},
"end": {
"line": 50,
"column": 26
}
},
"locations": [
{
"start": {
"line": 50,
"column": 20
},
"end": {
"line": 50,
"column": 26
}
}
]
},
"9": {
"type": "branch",
"line": 55,
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"locations": [
{
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
}
]
},
"10": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 64,
"column": 47
}
},
"locations": [
{
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 64,
"column": 47
}
}
]
},
"11": {
"type": "branch",
"line": 64,
"loc": {
"start": {
"line": 64,
"column": 20
},
"end": {
"line": 64,
"column": 26
}
},
"locations": [
{
"start": {
"line": 64,
"column": 20
},
"end": {
"line": 64,
"column": 26
}
}
]
},
"12": {
"type": "branch",
"line": 69,
"loc": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 82,
"column": 1
}
},
"locations": [
{
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 82,
"column": 1
}
}
]
},
"13": {
"type": "branch",
"line": 78,
"loc": {
"start": {
"line": 78,
"column": 14
},
"end": {
"line": 80,
"column": 10
}
},
"locations": [
{
"start": {
"line": 78,
"column": 14
},
"end": {
"line": 80,
"column": 10
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
2
],
"4": [
2
],
"5": [
0
],
"6": [
2
],
"7": [
2
],
"8": [
0
],
"9": [
1
],
"10": [
1
],
"11": [
0
],
"12": [
1
],
"13": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
},
"loc": {
"start": {
"line": 82,
"column": 1
},
"end": {
"line": 82,
"column": 1
}
},
"line": 82
},
"1": {
"name": "create",
"decl": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"loc": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"line": 27
},
"2": {
"name": "getAllCompanyCategorys",
"decl": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 43,
"column": 1
}
},
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 43,
"column": 1
}
},
"line": 34
},
"3": {
"name": "getCategoryById",
"decl": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"line": 45
},
"4": {
"name": "update",
"decl": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"line": 55
},
"5": {
"name": "_deleteCategory",
"decl": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 82,
"column": 1
}
},
"loc": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 82,
"column": 1
}
},
"line": 69
}
},
"f": {
"0": 1,
"1": 1,
"2": 2,
"3": 2,
"4": 1,
"5": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 45
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 49
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 18
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 19
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 19
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 19
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 27
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 20
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 12
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 2
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 39
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 59
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 20
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 1
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 0
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 43
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 47
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 42
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 8
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 22
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 40
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 28
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 30
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 36
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 11
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 7
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 56
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 5
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 74
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 18
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 7
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 0
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 27
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 0
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 33
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 45
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 21
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 1
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 0
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 47
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 59
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 0
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 31
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 20
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 5
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 21
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 1
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 0
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 36
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 47
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 20
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 1
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 0
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 32
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 26
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 17
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 30
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 1
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 0
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 33
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 0
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 35
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 43
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 28
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 34
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 17
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 0
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 20
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 2,
"13": 2,
"14": 0,
"15": 0,
"16": 1,
"17": 3,
"18": 3,
"19": 1,
"20": 1,
"21": 3,
"22": 0,
"23": 0,
"24": 3,
"25": 3,
"26": 3,
"27": 3,
"28": 0,
"29": 0,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 3,
"35": 0,
"36": 1,
"37": 0,
"38": 0,
"39": 0,
"40": 0,
"41": 1,
"42": 4,
"43": 4,
"44": 2,
"45": 2,
"46": 2,
"47": 2,
"48": 0,
"49": 0,
"50": 1,
"51": 4,
"52": 4,
"53": 4,
"54": 0,
"55": 1,
"56": 2,
"57": 2,
"58": 2,
"59": 2,
"60": 1,
"61": 1,
"62": 1,
"63": 1,
"64": 6,
"65": 6,
"66": 6,
"67": 3,
"68": 3,
"69": 3,
"70": 6,
"71": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 72,
"loc": {
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
},
"locations": [
{
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 72,
"loc": {
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
},
"locations": [
{
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 16,
"column": 1
}
},
"locations": [
{
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 16,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 16,
"column": 1
}
},
"locations": [
{
"start": {
"line": 14,
"column": 4
},
"end": {
"line": 16,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 18,
"loc": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"locations": [
{
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 19,
"loc": {
"start": {
"line": 19,
"column": 39
},
"end": {
"line": 22,
"column": 14
}
},
"locations": [
{
"start": {
"line": 19,
"column": 39
},
"end": {
"line": 22,
"column": 14
}
}
]
},
"6": {
"type": "branch",
"line": 22,
"loc": {
"start": {
"line": 22,
"column": 8
},
"end": {
"line": 23,
"column": 40
}
},
"locations": [
{
"start": {
"line": 22,
"column": 8
},
"end": {
"line": 23,
"column": 40
}
}
]
},
"7": {
"type": "branch",
"line": 22,
"loc": {
"start": {
"line": 22,
"column": 8
},
"end": {
"line": 24,
"column": 28
}
},
"locations": [
{
"start": {
"line": 22,
"column": 8
},
"end": {
"line": 24,
"column": 28
}
}
]
},
"8": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 6
},
"end": {
"line": 30,
"column": 5
}
},
"locations": [
{
"start": {
"line": 28,
"column": 6
},
"end": {
"line": 30,
"column": 5
}
}
]
},
"9": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 5
},
"end": {
"line": 35,
"column": 11
}
},
"locations": [
{
"start": {
"line": 30,
"column": 5
},
"end": {
"line": 35,
"column": 11
}
}
]
},
"10": {
"type": "branch",
"line": 35,
"loc": {
"start": {
"line": 35,
"column": 4
},
"end": {
"line": 36,
"column": 1
}
},
"locations": [
{
"start": {
"line": 35,
"column": 4
},
"end": {
"line": 36,
"column": 1
}
}
]
},
"11": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 50,
"column": 1
}
},
"locations": [
{
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 50,
"column": 1
}
}
]
},
"12": {
"type": "branch",
"line": 44,
"loc": {
"start": {
"line": 44,
"column": 4
},
"end": {
"line": 48,
"column": 5
}
},
"locations": [
{
"start": {
"line": 44,
"column": 4
},
"end": {
"line": 48,
"column": 5
}
}
]
},
"13": {
"type": "branch",
"line": 48,
"loc": {
"start": {
"line": 48,
"column": 5
},
"end": {
"line": 50,
"column": 1
}
},
"locations": [
{
"start": {
"line": 48,
"column": 5
},
"end": {
"line": 50,
"column": 1
}
}
]
},
"14": {
"type": "branch",
"line": 52,
"loc": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 55,
"column": 1
}
},
"locations": [
{
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 55,
"column": 1
}
}
]
},
"15": {
"type": "branch",
"line": 53,
"loc": {
"start": {
"line": 53,
"column": 4
},
"end": {
"line": 54,
"column": 11
}
},
"locations": [
{
"start": {
"line": 53,
"column": 4
},
"end": {
"line": 54,
"column": 11
}
}
]
},
"16": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 4
},
"end": {
"line": 55,
"column": 1
}
},
"locations": [
{
"start": {
"line": 54,
"column": 4
},
"end": {
"line": 55,
"column": 1
}
}
]
},
"17": {
"type": "branch",
"line": 57,
"loc": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 61,
"column": 1
}
},
"locations": [
{
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 61,
"column": 1
}
}
]
},
"18": {
"type": "branch",
"line": 60,
"loc": {
"start": {
"line": 60,
"column": 15
},
"end": {
"line": 61,
"column": 1
}
},
"locations": [
{
"start": {
"line": 60,
"column": 15
},
"end": {
"line": 61,
"column": 1
}
}
]
},
"19": {
"type": "branch",
"line": 65,
"loc": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 72,
"column": 1
}
},
"locations": [
{
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 72,
"column": 1
}
}
]
},
"20": {
"type": "branch",
"line": 67,
"loc": {
"start": {
"line": 67,
"column": 15
},
"end": {
"line": 71,
"column": 11
}
},
"locations": [
{
"start": {
"line": 67,
"column": 15
},
"end": {
"line": 71,
"column": 11
}
}
]
},
"21": {
"type": "branch",
"line": 71,
"loc": {
"start": {
"line": 71,
"column": 4
},
"end": {
"line": 72,
"column": 1
}
},
"locations": [
{
"start": {
"line": 71,
"column": 4
},
"end": {
"line": 72,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
0
],
"4": [
3
],
"5": [
1
],
"6": [
0
],
"7": [
0
],
"8": [
0
],
"9": [
1
],
"10": [
0
],
"11": [
4
],
"12": [
2
],
"13": [
0
],
"14": [
4
],
"15": [
2
],
"16": [
0
],
"17": [
2
],
"18": [
1
],
"19": [
6
],
"20": [
3
],
"21": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
},
"loc": {
"start": {
"line": 72,
"column": 1
},
"end": {
"line": 72,
"column": 1
}
},
"line": 72
},
"1": {
"name": "createCategory",
"decl": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 16,
"column": 1
}
},
"loc": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 16,
"column": 1
}
},
"line": 13
},
"2": {
"name": "updateCategory",
"decl": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"loc": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 36,
"column": 1
}
},
"line": 18
},
"3": {
"name": "getAllCategory",
"decl": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 41,
"column": 1
}
},
"loc": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 41,
"column": 1
}
},
"line": 38
},
"4": {
"name": "getAllCompanyCategorys",
"decl": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 50,
"column": 1
}
},
"loc": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 50,
"column": 1
}
},
"line": 43
},
"5": {
"name": "getCategoryById",
"decl": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 55,
"column": 1
}
},
"loc": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 55,
"column": 1
}
},
"line": 52
},
"6": {
"name": "_delete",
"decl": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 61,
"column": 1
}
},
"loc": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 61,
"column": 1
}
},
"line": 57
},
"7": {
"name": "getCategory",
"decl": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 72,
"column": 1
}
},
"loc": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 72,
"column": 1
}
},
"line": 65
}
},
"f": {
"0": 1,
"1": 2,
"2": 3,
"3": 0,
"4": 4,
"5": 4,
"6": 2,
"7": 6
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/category.validators.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 76
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 44
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 38
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 41
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 7
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 39
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 2
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 44
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 25
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 37
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 40
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 6
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 0
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 43
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 39
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 21,
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"locations": [
{
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 21,
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"locations": [
{
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 10,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 10,
"column": 2
}
}
]
},
"3": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 23
},
"end": {
"line": 21,
"column": 2
}
},
"locations": [
{
"start": {
"line": 12,
"column": 23
},
"end": {
"line": 21,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"line": 21
},
"1": {
"name": "Object.<anonymous>.exports.createSchema",
"decl": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 10,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 10,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.updateSchema",
"decl": {
"start": {
"line": 12,
"column": 23
},
"end": {
"line": 21,
"column": 2
}
},
"loc": {
"start": {
"line": 12,
"column": 23
},
"end": {
"line": 21,
"column": 2
}
},
"line": 12
}
},
"f": {
"0": 1,
"1": 1,
"2": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 66
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 40
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 26
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 28
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 31
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 35
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 66
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 16
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 23
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 53
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 37
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 23
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 59
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 52
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 18
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 14
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 10
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 5
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 15
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 22
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 17,
"7": 17,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
},
"locations": [
{
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
}
]
},
"1": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
},
"locations": [
{
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
}
]
},
"2": {
"type": "branch",
"line": 5,
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"locations": [
{
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"locations": [
{
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
},
"locations": [
{
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
17
],
"4": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
},
"loc": {
"start": {
"line": 28,
"column": 22
},
"end": {
"line": 28,
"column": 22
}
},
"line": 28
},
"1": {
"name": "Item",
"decl": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"line": 5
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"line": 6
},
"3": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
},
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
},
"line": 10
}
},
"f": {
"0": 1,
"1": 2,
"2": 17,
"3": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 68
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 76
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 50
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 46
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 0
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 31
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 22
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 3
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 70
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 28
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 78
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 65
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 0
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 24
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 0
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 33
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 60
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 15
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 29
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 51
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 21
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 34
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 39
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 15
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 24
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 70
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 21
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 0
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 37
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 39
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 15
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 33
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 70
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 21
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 1
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 0
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 37
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 39
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 15
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 27
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 19
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 22
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 53
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 19
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 14
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 9
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 21
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 2,
"26": 2,
"27": 2,
"28": 2,
"29": 2,
"30": 2,
"31": 2,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 1,
"49": 1,
"50": 1,
"51": 1,
"52": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 53,
"loc": {
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 53,
"loc": {
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 18,
"loc": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"locations": [
{
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 26,
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 15
},
"end": {
"line": 30,
"column": 52
}
},
"locations": [
{
"start": {
"line": 30,
"column": 15
},
"end": {
"line": 30,
"column": 52
}
}
]
},
"5": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 29
},
"end": {
"line": 30,
"column": 35
}
},
"locations": [
{
"start": {
"line": 30,
"column": 29
},
"end": {
"line": 30,
"column": 35
}
}
]
},
"6": {
"type": "branch",
"line": 34,
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 40,
"column": 1
}
},
"locations": [
{
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 40,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 38,
"loc": {
"start": {
"line": 38,
"column": 15
},
"end": {
"line": 38,
"column": 52
}
},
"locations": [
{
"start": {
"line": 38,
"column": 15
},
"end": {
"line": 38,
"column": 52
}
}
]
},
"8": {
"type": "branch",
"line": 38,
"loc": {
"start": {
"line": 38,
"column": 29
},
"end": {
"line": 38,
"column": 35
}
},
"locations": [
{
"start": {
"line": 38,
"column": 29
},
"end": {
"line": 38,
"column": 35
}
}
]
},
"9": {
"type": "branch",
"line": 42,
"loc": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
]
},
"10": {
"type": "branch",
"line": 46,
"loc": {
"start": {
"line": 46,
"column": 14
},
"end": {
"line": 47,
"column": 15
}
},
"locations": [
{
"start": {
"line": 46,
"column": 14
},
"end": {
"line": 47,
"column": 15
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
2
],
"4": [
2
],
"5": [
0
],
"6": [
1
],
"7": [
1
],
"8": [
0
],
"9": [
1
],
"10": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 53,
"column": 1
},
"end": {
"line": 53,
"column": 1
}
},
"line": 53
},
"1": {
"name": "create",
"decl": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"loc": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"line": 18
},
"2": {
"name": "getById",
"decl": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"line": 26
},
"3": {
"name": "updateItem",
"decl": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 40,
"column": 1
}
},
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 40,
"column": 1
}
},
"line": 34
},
"4": {
"name": "deleteItem",
"decl": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"line": 42
}
},
"f": {
"0": 1,
"1": 1,
"2": 2,
"3": 1,
"4": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 37
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 52
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 18
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 15
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 16
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 15
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 15
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 2
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 35
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 51
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 16
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 0
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 32
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 39
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 16
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 20
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 5
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 16
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 0
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 39
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 72
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 0
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 22
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 1
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 0
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 40
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 22
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 17
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 35
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 1
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 0
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 59
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 32
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 35
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 29
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 17
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 16
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 1
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 0
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 29
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 43
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 37
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 2,
"11": 2,
"12": 0,
"13": 0,
"14": 1,
"15": 4,
"16": 4,
"17": 2,
"18": 2,
"19": 2,
"20": 0,
"21": 0,
"22": 1,
"23": 2,
"24": 2,
"25": 1,
"26": 2,
"27": 0,
"28": 1,
"29": 2,
"30": 2,
"31": 2,
"32": 2,
"33": 1,
"34": 1,
"35": 1,
"36": 4,
"37": 4,
"38": 4,
"39": 2,
"40": 4,
"41": 0,
"42": 1,
"43": 0,
"44": 0,
"45": 0,
"46": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
},
"locations": [
{
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
},
"locations": [
{
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"locations": [
{
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 4
},
"end": {
"line": 14,
"column": 1
}
},
"locations": [
{
"start": {
"line": 12,
"column": 4
},
"end": {
"line": 14,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"locations": [
{
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 17,
"loc": {
"start": {
"line": 17,
"column": 4
},
"end": {
"line": 20,
"column": 5
}
},
"locations": [
{
"start": {
"line": 17,
"column": 4
},
"end": {
"line": 20,
"column": 5
}
}
]
},
"6": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 5
},
"end": {
"line": 22,
"column": 1
}
},
"locations": [
{
"start": {
"line": 20,
"column": 5
},
"end": {
"line": 22,
"column": 1
}
}
]
},
"7": {
"type": "branch",
"line": 24,
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 28,
"column": 1
}
},
"locations": [
{
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 28,
"column": 1
}
}
]
},
"8": {
"type": "branch",
"line": 25,
"loc": {
"start": {
"line": 25,
"column": 4
},
"end": {
"line": 27,
"column": 11
}
},
"locations": [
{
"start": {
"line": 25,
"column": 4
},
"end": {
"line": 27,
"column": 11
}
}
]
},
"9": {
"type": "branch",
"line": 27,
"loc": {
"start": {
"line": 27,
"column": 4
},
"end": {
"line": 28,
"column": 1
}
},
"locations": [
{
"start": {
"line": 27,
"column": 4
},
"end": {
"line": 28,
"column": 1
}
}
]
},
"10": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 34,
"column": 1
}
},
"locations": [
{
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 34,
"column": 1
}
}
]
},
"11": {
"type": "branch",
"line": 33,
"loc": {
"start": {
"line": 33,
"column": 15
},
"end": {
"line": 34,
"column": 1
}
},
"locations": [
{
"start": {
"line": 33,
"column": 15
},
"end": {
"line": 34,
"column": 1
}
}
]
},
"12": {
"type": "branch",
"line": 37,
"loc": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 42,
"column": 1
}
},
"locations": [
{
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 42,
"column": 1
}
}
]
},
"13": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 41,
"column": 11
}
},
"locations": [
{
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 41,
"column": 11
}
}
]
},
"14": {
"type": "branch",
"line": 41,
"loc": {
"start": {
"line": 41,
"column": 4
},
"end": {
"line": 42,
"column": 1
}
},
"locations": [
{
"start": {
"line": 41,
"column": 4
},
"end": {
"line": 42,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
0
],
"4": [
4
],
"5": [
2
],
"6": [
0
],
"7": [
2
],
"8": [
1
],
"9": [
0
],
"10": [
2
],
"11": [
1
],
"12": [
4
],
"13": [
2
],
"14": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
},
"loc": {
"start": {
"line": 47,
"column": 1
},
"end": {
"line": 47,
"column": 1
}
},
"line": 47
},
"1": {
"name": "createItem",
"decl": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"loc": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"line": 11
},
"2": {
"name": "getItemById",
"decl": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"loc": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 22,
"column": 1
}
},
"line": 16
},
"3": {
"name": "updateItem",
"decl": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 28,
"column": 1
}
},
"loc": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 28,
"column": 1
}
},
"line": 24
},
"4": {
"name": "deleteItem",
"decl": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 34,
"column": 1
}
},
"loc": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 34,
"column": 1
}
},
"line": 30
},
"5": {
"name": "getItem",
"decl": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 42,
"column": 1
}
},
"loc": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 42,
"column": 1
}
},
"line": 37
},
"6": {
"name": "basicDetails",
"decl": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"loc": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"line": 44
}
},
"f": {
"0": 1,
"1": 2,
"2": 4,
"3": 2,
"4": 2,
"5": 4,
"6": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/category/item/item.validators.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 79
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 44
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 38
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 39
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 42
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 45
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 32
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 45
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 7
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 39
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 2
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 0
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 44
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 25
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 37
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 38
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 41
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 44
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 32
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 44
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 6
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 43
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 39
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 29,
"loc": {
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
},
"locations": [
{
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 29,
"loc": {
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
},
"locations": [
{
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 14,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 14,
"column": 2
}
}
]
},
"3": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 23
},
"end": {
"line": 29,
"column": 2
}
},
"locations": [
{
"start": {
"line": 16,
"column": 23
},
"end": {
"line": 29,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
},
"loc": {
"start": {
"line": 29,
"column": 2
},
"end": {
"line": 29,
"column": 2
}
},
"line": 29
},
"1": {
"name": "Object.<anonymous>.exports.createSchema",
"decl": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 14,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 14,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.updateSchema",
"decl": {
"start": {
"line": 16,
"column": 23
},
"end": {
"line": 29,
"column": 2
}
},
"loc": {
"start": {
"line": 16,
"column": 23
},
"end": {
"line": 29,
"column": 2
}
},
"line": 16
}
},
"f": {
"0": 1,
"1": 1,
"2": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 34
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 45
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 60
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 26
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 28
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 31
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 5
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 29
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 22
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 5
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 35
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 69
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 52
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 62
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 16
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 22
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 53
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 36
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 23
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 58
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 51
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 18
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 14
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 25
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 48
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 37
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 23
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 50
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 57
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 18
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 14
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 10
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 5
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 1
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 0
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 15
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 0
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 22
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 41,
"8": 41,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
},
"locations": [
{
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
}
]
},
"1": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
},
"locations": [
{
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
}
]
},
"2": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"locations": [
{
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 7,
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"locations": [
{
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"locations": [
{
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"locations": [
{
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
4
],
"3": [
41
],
"4": [
1
],
"5": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
},
"loc": {
"start": {
"line": 43,
"column": 22
},
"end": {
"line": 43,
"column": 22
}
},
"line": 43
},
"1": {
"name": "Menu",
"decl": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"line": 6
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"line": 7
},
"3": {
"name": "get jsonSchema",
"decl": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"line": 11
},
"4": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 38,
"column": 5
}
},
"line": 15
}
},
"f": {
"0": 1,
"1": 4,
"2": 41,
"3": 1,
"4": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 67
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 70
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 44
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 55
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 46
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 58
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 31
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 22
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 3
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 51
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 43
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 0
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 70
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 36
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 32
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 74
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 66
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 0
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 24
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 33
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 58
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 15
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 29
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 39
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 21
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 0
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 45
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 55
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 0
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 15
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 43
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 26
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 24
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 35
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 40
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 37
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 38
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 10
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 21
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 0
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 38
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 39
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 0
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 15
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 24
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 70
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 21
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 1
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 0
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 33
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 47
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 58
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 15
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 44
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 70
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 21
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 0
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 38
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 54
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 39
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 55
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 15
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 18
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 15
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 23
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 10
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 21
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 29
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 10
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 21
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 0,
"41": 0,
"42": 0,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 2,
"49": 2,
"50": 2,
"51": 2,
"52": 2,
"53": 2,
"54": 2,
"55": 2,
"56": 1,
"57": 1,
"58": 1,
"59": 1,
"60": 1,
"61": 1,
"62": 1,
"63": 1,
"64": 1,
"65": 1,
"66": 1,
"67": 1,
"68": 1,
"69": 1,
"70": 1,
"71": 1,
"72": 1,
"73": 1,
"74": 1,
"75": 1,
"76": 1,
"77": 1,
"78": 1,
"79": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 80,
"loc": {
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
},
"locations": [
{
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 80,
"loc": {
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
},
"locations": [
{
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 26,
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"locations": [
{
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 15
},
"end": {
"line": 30,
"column": 27
}
},
"locations": [
{
"start": {
"line": 30,
"column": 15
},
"end": {
"line": 30,
"column": 27
}
}
]
},
"4": {
"type": "branch",
"line": 34,
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"locations": [
{
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 45,
"column": 10
}
},
"locations": [
{
"start": {
"line": 39,
"column": 15
},
"end": {
"line": 45,
"column": 10
}
}
]
},
"6": {
"type": "branch",
"line": 41,
"loc": {
"start": {
"line": 41,
"column": 18
},
"end": {
"line": 42,
"column": 25
}
},
"locations": [
{
"start": {
"line": 41,
"column": 18
},
"end": {
"line": 42,
"column": 25
}
}
]
},
"7": {
"type": "branch",
"line": 40,
"loc": {
"start": {
"line": 40,
"column": 24
},
"end": {
"line": 44,
"column": 21
}
},
"locations": [
{
"start": {
"line": 40,
"column": 24
},
"end": {
"line": 44,
"column": 21
}
}
]
},
"8": {
"type": "branch",
"line": 49,
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 56,
"column": 1
}
},
"locations": [
{
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 56,
"column": 1
}
}
]
},
"9": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 15
},
"end": {
"line": 54,
"column": 52
}
},
"locations": [
{
"start": {
"line": 54,
"column": 15
},
"end": {
"line": 54,
"column": 52
}
}
]
},
"10": {
"type": "branch",
"line": 54,
"loc": {
"start": {
"line": 54,
"column": 29
},
"end": {
"line": 54,
"column": 35
}
},
"locations": [
{
"start": {
"line": 54,
"column": 29
},
"end": {
"line": 54,
"column": 35
}
}
]
},
"11": {
"type": "branch",
"line": 58,
"loc": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"locations": [
{
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
}
]
},
"12": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 63,
"column": 52
}
},
"locations": [
{
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 63,
"column": 52
}
}
]
},
"13": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 29
},
"end": {
"line": 63,
"column": 52
}
},
"locations": [
{
"start": {
"line": 63,
"column": 29
},
"end": {
"line": 63,
"column": 52
}
}
]
},
"14": {
"type": "branch",
"line": 67,
"loc": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 80,
"column": 1
}
},
"locations": [
{
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 80,
"column": 1
}
}
]
},
"15": {
"type": "branch",
"line": 76,
"loc": {
"start": {
"line": 76,
"column": 14
},
"end": {
"line": 78,
"column": 10
}
},
"locations": [
{
"start": {
"line": 76,
"column": 14
},
"end": {
"line": 78,
"column": 10
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
1
],
"4": [
1
],
"5": [
1
],
"6": [
0
],
"7": [
0
],
"8": [
2
],
"9": [
2
],
"10": [
0
],
"11": [
1
],
"12": [
1
],
"13": [
0
],
"14": [
1
],
"15": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
},
"loc": {
"start": {
"line": 80,
"column": 1
},
"end": {
"line": 80,
"column": 1
}
},
"line": 80
},
"1": {
"name": "create",
"decl": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"loc": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 32,
"column": 1
}
},
"line": 26
},
"2": {
"name": "getAllCompanyMenus",
"decl": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"loc": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 47,
"column": 1
}
},
"line": 34
},
"3": {
"name": "getMenuById",
"decl": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 56,
"column": 1
}
},
"loc": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 56,
"column": 1
}
},
"line": 49
},
"4": {
"name": "update",
"decl": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"loc": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 65,
"column": 1
}
},
"line": 58
},
"5": {
"name": "_deleteMenu",
"decl": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 80,
"column": 1
}
},
"loc": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 80,
"column": 1
}
},
"line": 67
}
},
"f": {
"0": 1,
"1": 1,
"2": 1,
"3": 2,
"4": 1,
"5": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 43
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 46
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 58
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 18
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 15
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 15
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 15
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 23
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 16
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 12
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 2
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 35
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 51
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 16
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 39
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 66
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 18
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 7
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 0
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 23
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 1
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 0
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 29
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 37
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 17
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 1
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 0
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 43
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 36
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 29
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 40
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 45
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 1
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 0
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 32
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 39
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 16
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 20
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 5
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 30
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 0
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 37
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 22
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 17
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 35
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 0
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 35
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 18
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 38
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 0
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 4
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 0
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 33
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 0
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 31
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 35
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 28
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 39
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 17
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 16
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 0
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 29
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 54
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 0
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 48
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 2,
"14": 2,
"15": 2,
"16": 0,
"17": 1,
"18": 2,
"19": 2,
"20": 1,
"21": 1,
"22": 1,
"23": 2,
"24": 0,
"25": 1,
"26": 0,
"27": 0,
"28": 0,
"29": 0,
"30": 1,
"31": 2,
"32": 2,
"33": 2,
"34": 1,
"35": 2,
"36": 0,
"37": 1,
"38": 4,
"39": 4,
"40": 2,
"41": 2,
"42": 2,
"43": 0,
"44": 0,
"45": 1,
"46": 2,
"47": 2,
"48": 2,
"49": 2,
"50": 1,
"51": 1,
"52": 1,
"53": 1,
"54": 1,
"55": 1,
"56": 1,
"57": 1,
"58": 1,
"59": 1,
"60": 4,
"61": 4,
"62": 4,
"63": 2,
"64": 2,
"65": 4,
"66": 0,
"67": 1,
"68": 0,
"69": 0,
"70": 0,
"71": 0,
"72": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 73,
"loc": {
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
},
"locations": [
{
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 73,
"loc": {
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
},
"locations": [
{
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"locations": [
{
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 16,
"column": 11
}
},
"locations": [
{
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 16,
"column": 11
}
}
]
},
"4": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 4
},
"end": {
"line": 17,
"column": 1
}
},
"locations": [
{
"start": {
"line": 16,
"column": 4
},
"end": {
"line": 17,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 19,
"loc": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 25,
"column": 1
}
},
"locations": [
{
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 25,
"column": 1
}
}
]
},
"6": {
"type": "branch",
"line": 20,
"loc": {
"start": {
"line": 20,
"column": 4
},
"end": {
"line": 24,
"column": 11
}
},
"locations": [
{
"start": {
"line": 20,
"column": 4
},
"end": {
"line": 24,
"column": 11
}
}
]
},
"7": {
"type": "branch",
"line": 24,
"loc": {
"start": {
"line": 24,
"column": 4
},
"end": {
"line": 25,
"column": 1
}
},
"locations": [
{
"start": {
"line": 24,
"column": 4
},
"end": {
"line": 25,
"column": 1
}
}
]
},
"8": {
"type": "branch",
"line": 32,
"loc": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 37,
"column": 1
}
},
"locations": [
{
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 37,
"column": 1
}
}
]
},
"9": {
"type": "branch",
"line": 34,
"loc": {
"start": {
"line": 34,
"column": 15
},
"end": {
"line": 36,
"column": 11
}
},
"locations": [
{
"start": {
"line": 34,
"column": 15
},
"end": {
"line": 36,
"column": 11
}
}
]
},
"10": {
"type": "branch",
"line": 36,
"loc": {
"start": {
"line": 36,
"column": 4
},
"end": {
"line": 37,
"column": 1
}
},
"locations": [
{
"start": {
"line": 36,
"column": 4
},
"end": {
"line": 37,
"column": 1
}
}
]
},
"11": {
"type": "branch",
"line": 39,
"loc": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"locations": [
{
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
}
]
},
"12": {
"type": "branch",
"line": 40,
"loc": {
"start": {
"line": 40,
"column": 4
},
"end": {
"line": 43,
"column": 5
}
},
"locations": [
{
"start": {
"line": 40,
"column": 4
},
"end": {
"line": 43,
"column": 5
}
}
]
},
"13": {
"type": "branch",
"line": 43,
"loc": {
"start": {
"line": 43,
"column": 5
},
"end": {
"line": 45,
"column": 1
}
},
"locations": [
{
"start": {
"line": 43,
"column": 5
},
"end": {
"line": 45,
"column": 1
}
}
]
},
"14": {
"type": "branch",
"line": 47,
"loc": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"locations": [
{
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
}
]
},
"15": {
"type": "branch",
"line": 50,
"loc": {
"start": {
"line": 50,
"column": 15
},
"end": {
"line": 51,
"column": 1
}
},
"locations": [
{
"start": {
"line": 50,
"column": 15
},
"end": {
"line": 51,
"column": 1
}
}
]
},
"16": {
"type": "branch",
"line": 61,
"loc": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"locations": [
{
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
}
]
},
"17": {
"type": "branch",
"line": 63,
"loc": {
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 66,
"column": 11
}
},
"locations": [
{
"start": {
"line": 63,
"column": 15
},
"end": {
"line": 66,
"column": 11
}
}
]
},
"18": {
"type": "branch",
"line": 66,
"loc": {
"start": {
"line": 66,
"column": 4
},
"end": {
"line": 67,
"column": 1
}
},
"locations": [
{
"start": {
"line": 66,
"column": 4
},
"end": {
"line": 67,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
1
],
"4": [
0
],
"5": [
2
],
"6": [
1
],
"7": [
0
],
"8": [
2
],
"9": [
1
],
"10": [
0
],
"11": [
4
],
"12": [
2
],
"13": [
0
],
"14": [
2
],
"15": [
1
],
"16": [
4
],
"17": [
2
],
"18": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
},
"loc": {
"start": {
"line": 73,
"column": 1
},
"end": {
"line": 73,
"column": 1
}
},
"line": 73
},
"1": {
"name": "createMenu",
"decl": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"loc": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"line": 14
},
"2": {
"name": "updateMenu",
"decl": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 25,
"column": 1
}
},
"loc": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 25,
"column": 1
}
},
"line": 19
},
"3": {
"name": "getAllMenu",
"decl": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 30,
"column": 1
}
},
"loc": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 30,
"column": 1
}
},
"line": 27
},
"4": {
"name": "getAllCompanyMenus",
"decl": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 37,
"column": 1
}
},
"loc": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 37,
"column": 1
}
},
"line": 32
},
"5": {
"name": "getMenuById",
"decl": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"loc": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 45,
"column": 1
}
},
"line": 39
},
"6": {
"name": "_delete",
"decl": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"loc": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"line": 47
},
"7": {
"name": "getMenu",
"decl": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"loc": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"line": 61
},
"8": {
"name": "basicDetails",
"decl": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 73,
"column": 1
}
},
"loc": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 73,
"column": 1
}
},
"line": 69
}
},
"f": {
"0": 1,
"1": 2,
"2": 2,
"3": 0,
"4": 2,
"5": 4,
"6": 2,
"7": 4,
"8": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/menu/menu.validator.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 73
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 44
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 38
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 45
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 32
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 7
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 39
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 2
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 44
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 25
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 37
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 44
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 42
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 6
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 43
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 0
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 39
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 23,
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 23,
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 11,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 11,
"column": 2
}
}
]
},
"3": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 13,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"line": 23
},
"1": {
"name": "Object.<anonymous>.exports.createSchema",
"decl": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 11,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 11,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.updateSchema",
"decl": {
"start": {
"line": 13,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"loc": {
"start": {
"line": 13,
"column": 23
},
"end": {
"line": 23,
"column": 2
}
},
"line": 13
}
},
"f": {
"0": 1,
"1": 1,
"2": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 60
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 34
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 46
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 27
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 28
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 32
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 5
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 29
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 22
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 5
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 35
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 52
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 65
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 16
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 20
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 48
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 38
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 23
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 51
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 59
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 18
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 14
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 22
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 53
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 36
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 23
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 59
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 51
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 18
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 14
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 10
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 5
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 1
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 0
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 15
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 0
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 23
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 7,
"8": 7,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 42,
"loc": {
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
},
"locations": [
{
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
}
]
},
"1": {
"type": "branch",
"line": 42,
"loc": {
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
},
"locations": [
{
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
}
]
},
"2": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"locations": [
{
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 7,
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"locations": [
{
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
}
]
},
"4": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"locations": [
{
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
}
]
},
"5": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 37,
"column": 5
}
},
"locations": [
{
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 37,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
7
],
"4": [
1
],
"5": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
},
"loc": {
"start": {
"line": 42,
"column": 23
},
"end": {
"line": 42,
"column": 23
}
},
"line": 42
},
"1": {
"name": "Order",
"decl": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 6
}
},
"line": 6
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"loc": {
"start": {
"line": 7,
"column": 4
},
"end": {
"line": 9,
"column": 5
}
},
"line": 7
},
"3": {
"name": "get jsonSchema",
"decl": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"loc": {
"start": {
"line": 11,
"column": 4
},
"end": {
"line": 13,
"column": 5
}
},
"line": 11
},
"4": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 37,
"column": 5
}
},
"loc": {
"start": {
"line": 15,
"column": 4
},
"end": {
"line": 37,
"column": 5
}
},
"line": 15
}
},
"f": {
"0": 1,
"1": 1,
"2": 7,
"3": 1,
"4": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 7
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 22
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 22
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 23
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 34
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 70
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 44
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 48
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 58
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 31
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 22
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 3
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 0
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 46
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 53
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 49
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 13
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 11
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 22
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 35
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 15
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 2
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 41
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 64
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 11
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 22
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 23
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 35
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 14
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 20
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 2
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 0
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 38
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 21
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 34
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 52
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 50
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 46
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 6
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 0
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 16
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 29
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 28
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 22
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 72
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 14
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 9
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 21
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 0
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 38
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 16
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 55
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 41
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 21
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 0
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 39
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 16
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 25
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 73
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 21
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 0
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 39
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 16
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 34
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 77
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 21
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 1
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 0
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 43
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 31
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 0
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 46
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 16
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 33
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 77
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 21
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 1
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 24
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1,
"37": 1,
"38": 1,
"39": 1,
"40": 1,
"41": 1,
"42": 1,
"43": 1,
"44": 1,
"45": 1,
"46": 1,
"47": 1,
"48": 1,
"49": 1,
"50": 1,
"51": 1,
"52": 1,
"53": 1,
"54": 0,
"55": 0,
"56": 0,
"57": 0,
"58": 0,
"59": 0,
"60": 1,
"61": 0,
"62": 0,
"63": 0,
"64": 0,
"65": 0,
"66": 0,
"67": 1,
"68": 0,
"69": 0,
"70": 0,
"71": 0,
"72": 0,
"73": 0,
"74": 1,
"75": 0,
"76": 0,
"77": 0,
"78": 0,
"79": 0,
"80": 0,
"81": 0,
"82": 0,
"83": 0,
"84": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 85,
"loc": {
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
},
"locations": [
{
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
}
]
},
"1": {
"type": "branch",
"line": 85,
"loc": {
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
},
"locations": [
{
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
}
]
},
"2": {
"type": "branch",
"line": 37,
"loc": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"locations": [
{
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
},
"loc": {
"start": {
"line": 85,
"column": 24
},
"end": {
"line": 85,
"column": 24
}
},
"line": 85
},
"1": {
"name": "createOrder",
"decl": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"loc": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 53,
"column": 1
}
},
"line": 37
},
"2": {
"name": "updateOrder",
"decl": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"loc": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 60,
"column": 1
}
},
"line": 55
},
"3": {
"name": "getOrderById",
"decl": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"loc": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 67,
"column": 1
}
},
"line": 62
},
"4": {
"name": "getOwnOrders",
"decl": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 74,
"column": 1
}
},
"loc": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 74,
"column": 1
}
},
"line": 69
},
"5": {
"name": "getCompanyOrders",
"decl": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 84,
"column": 1
}
},
"loc": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 84,
"column": 1
}
},
"line": 76
}
},
"f": {
"0": 1,
"1": 1,
"2": 0,
"3": 0,
"4": 0,
"5": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.service.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 18
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 16
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 20
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 16
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 17
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 17
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 21
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 2
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 36
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 73
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 0
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 46
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 59
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 35
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 24
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 34
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 7
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 0
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 21
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 1
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 44
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 37
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 18
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 26
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 36
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 27
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 31
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 35
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 21
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 56
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 0
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 25
}
},
"37": {
"start": {
"line": 38,
"column": 0
},
"end": {
"line": 38,
"column": 5
}
},
"38": {
"start": {
"line": 39,
"column": 0
},
"end": {
"line": 39,
"column": 0
}
},
"39": {
"start": {
"line": 40,
"column": 0
},
"end": {
"line": 40,
"column": 27
}
},
"40": {
"start": {
"line": 41,
"column": 0
},
"end": {
"line": 41,
"column": 31
}
},
"41": {
"start": {
"line": 42,
"column": 0
},
"end": {
"line": 42,
"column": 16
}
},
"42": {
"start": {
"line": 43,
"column": 0
},
"end": {
"line": 43,
"column": 43
}
},
"43": {
"start": {
"line": 44,
"column": 0
},
"end": {
"line": 44,
"column": 10
}
},
"44": {
"start": {
"line": 45,
"column": 0
},
"end": {
"line": 45,
"column": 16
}
},
"45": {
"start": {
"line": 46,
"column": 0
},
"end": {
"line": 46,
"column": 44
}
},
"46": {
"start": {
"line": 47,
"column": 0
},
"end": {
"line": 47,
"column": 10
}
},
"47": {
"start": {
"line": 48,
"column": 0
},
"end": {
"line": 48,
"column": 24
}
},
"48": {
"start": {
"line": 49,
"column": 0
},
"end": {
"line": 49,
"column": 0
}
},
"49": {
"start": {
"line": 50,
"column": 0
},
"end": {
"line": 50,
"column": 21
}
},
"50": {
"start": {
"line": 51,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"51": {
"start": {
"line": 52,
"column": 0
},
"end": {
"line": 52,
"column": 0
}
},
"52": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 53,
"column": 46
}
},
"53": {
"start": {
"line": 54,
"column": 0
},
"end": {
"line": 54,
"column": 63
}
},
"54": {
"start": {
"line": 55,
"column": 0
},
"end": {
"line": 55,
"column": 0
}
},
"55": {
"start": {
"line": 56,
"column": 0
},
"end": {
"line": 56,
"column": 47
}
},
"56": {
"start": {
"line": 57,
"column": 0
},
"end": {
"line": 57,
"column": 47
}
},
"57": {
"start": {
"line": 58,
"column": 0
},
"end": {
"line": 58,
"column": 20
}
},
"58": {
"start": {
"line": 59,
"column": 0
},
"end": {
"line": 59,
"column": 5
}
},
"59": {
"start": {
"line": 60,
"column": 0
},
"end": {
"line": 60,
"column": 29
}
},
"60": {
"start": {
"line": 61,
"column": 0
},
"end": {
"line": 61,
"column": 62
}
},
"61": {
"start": {
"line": 62,
"column": 0
},
"end": {
"line": 62,
"column": 0
}
},
"62": {
"start": {
"line": 63,
"column": 0
},
"end": {
"line": 63,
"column": 17
}
},
"63": {
"start": {
"line": 64,
"column": 0
},
"end": {
"line": 64,
"column": 1
}
},
"64": {
"start": {
"line": 65,
"column": 0
},
"end": {
"line": 65,
"column": 0
}
},
"65": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 66,
"column": 33
}
},
"66": {
"start": {
"line": 67,
"column": 0
},
"end": {
"line": 67,
"column": 63
}
},
"67": {
"start": {
"line": 68,
"column": 0
},
"end": {
"line": 68,
"column": 17
}
},
"68": {
"start": {
"line": 69,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"69": {
"start": {
"line": 70,
"column": 0
},
"end": {
"line": 70,
"column": 0
}
},
"70": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 71,
"column": 33
}
},
"71": {
"start": {
"line": 72,
"column": 0
},
"end": {
"line": 72,
"column": 38
}
},
"72": {
"start": {
"line": 73,
"column": 0
},
"end": {
"line": 73,
"column": 31
}
},
"73": {
"start": {
"line": 74,
"column": 0
},
"end": {
"line": 74,
"column": 31
}
},
"74": {
"start": {
"line": 75,
"column": 0
},
"end": {
"line": 75,
"column": 18
}
},
"75": {
"start": {
"line": 76,
"column": 0
},
"end": {
"line": 76,
"column": 1
}
},
"76": {
"start": {
"line": 77,
"column": 0
},
"end": {
"line": 77,
"column": 0
}
},
"77": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 78,
"column": 41
}
},
"78": {
"start": {
"line": 79,
"column": 0
},
"end": {
"line": 79,
"column": 75
}
},
"79": {
"start": {
"line": 80,
"column": 0
},
"end": {
"line": 80,
"column": 18
}
},
"80": {
"start": {
"line": 81,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"81": {
"start": {
"line": 82,
"column": 0
},
"end": {
"line": 82,
"column": 59
}
},
"82": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 83,
"column": 46
}
},
"83": {
"start": {
"line": 84,
"column": 0
},
"end": {
"line": 84,
"column": 51
}
},
"84": {
"start": {
"line": 85,
"column": 0
},
"end": {
"line": 85,
"column": 43
}
},
"85": {
"start": {
"line": 86,
"column": 0
},
"end": {
"line": 86,
"column": 42
}
},
"86": {
"start": {
"line": 87,
"column": 0
},
"end": {
"line": 87,
"column": 0
}
},
"87": {
"start": {
"line": 88,
"column": 0
},
"end": {
"line": 88,
"column": 35
}
},
"88": {
"start": {
"line": 89,
"column": 0
},
"end": {
"line": 89,
"column": 16
}
},
"89": {
"start": {
"line": 90,
"column": 0
},
"end": {
"line": 90,
"column": 24
}
},
"90": {
"start": {
"line": 91,
"column": 0
},
"end": {
"line": 91,
"column": 46
}
},
"91": {
"start": {
"line": 92,
"column": 0
},
"end": {
"line": 92,
"column": 10
}
},
"92": {
"start": {
"line": 93,
"column": 0
},
"end": {
"line": 93,
"column": 17
}
},
"93": {
"start": {
"line": 94,
"column": 0
},
"end": {
"line": 94,
"column": 0
}
},
"94": {
"start": {
"line": 95,
"column": 0
},
"end": {
"line": 95,
"column": 17
}
},
"95": {
"start": {
"line": 96,
"column": 0
},
"end": {
"line": 96,
"column": 21
}
},
"96": {
"start": {
"line": 97,
"column": 0
},
"end": {
"line": 97,
"column": 44
}
},
"97": {
"start": {
"line": 98,
"column": 0
},
"end": {
"line": 98,
"column": 24
}
},
"98": {
"start": {
"line": 99,
"column": 0
},
"end": {
"line": 99,
"column": 23
}
},
"99": {
"start": {
"line": 100,
"column": 0
},
"end": {
"line": 100,
"column": 46
}
},
"100": {
"start": {
"line": 101,
"column": 0
},
"end": {
"line": 101,
"column": 38
}
},
"101": {
"start": {
"line": 102,
"column": 0
},
"end": {
"line": 102,
"column": 11
}
},
"102": {
"start": {
"line": 103,
"column": 0
},
"end": {
"line": 103,
"column": 5
}
},
"103": {
"start": {
"line": 104,
"column": 0
},
"end": {
"line": 104,
"column": 0
}
},
"104": {
"start": {
"line": 105,
"column": 0
},
"end": {
"line": 105,
"column": 17
}
},
"105": {
"start": {
"line": 106,
"column": 0
},
"end": {
"line": 106,
"column": 1
}
},
"106": {
"start": {
"line": 107,
"column": 0
},
"end": {
"line": 107,
"column": 0
}
},
"107": {
"start": {
"line": 108,
"column": 0
},
"end": {
"line": 108,
"column": 33
}
},
"108": {
"start": {
"line": 109,
"column": 0
},
"end": {
"line": 109,
"column": 0
}
},
"109": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 110,
"column": 29
}
},
"110": {
"start": {
"line": 111,
"column": 0
},
"end": {
"line": 111,
"column": 61
}
},
"111": {
"start": {
"line": 112,
"column": 0
},
"end": {
"line": 112,
"column": 17
}
},
"112": {
"start": {
"line": 113,
"column": 0
},
"end": {
"line": 113,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 2,
"12": 2,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0,
"19": 0,
"20": 0,
"21": 0,
"22": 0,
"23": 1,
"24": 0,
"25": 0,
"26": 0,
"27": 0,
"28": 0,
"29": 0,
"30": 0,
"31": 0,
"32": 0,
"33": 0,
"34": 0,
"35": 0,
"36": 0,
"37": 0,
"38": 0,
"39": 0,
"40": 0,
"41": 0,
"42": 0,
"43": 0,
"44": 0,
"45": 0,
"46": 0,
"47": 0,
"48": 0,
"49": 0,
"50": 0,
"51": 1,
"52": 0,
"53": 0,
"54": 0,
"55": 0,
"56": 0,
"57": 0,
"58": 0,
"59": 0,
"60": 0,
"61": 0,
"62": 0,
"63": 0,
"64": 1,
"65": 0,
"66": 0,
"67": 0,
"68": 0,
"69": 1,
"70": 0,
"71": 0,
"72": 0,
"73": 0,
"74": 0,
"75": 0,
"76": 1,
"77": 0,
"78": 0,
"79": 0,
"80": 0,
"81": 1,
"82": 3,
"83": 3,
"84": 3,
"85": 3,
"86": 3,
"87": 3,
"88": 3,
"89": 1,
"90": 1,
"91": 1,
"92": 1,
"93": 1,
"94": 1,
"95": 1,
"96": 1,
"97": 0,
"98": 0,
"99": 0,
"100": 0,
"101": 0,
"102": 0,
"103": 0,
"104": 0,
"105": 0,
"106": 1,
"107": 1,
"108": 1,
"109": 0,
"110": 0,
"111": 0,
"112": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 113,
"loc": {
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
},
"locations": [
{
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 113,
"loc": {
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
},
"locations": [
{
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
}
]
},
"2": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 23,
"column": 1
}
},
"locations": [
{
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 23,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 4
},
"end": {
"line": 23,
"column": 1
}
},
"locations": [
{
"start": {
"line": 13,
"column": 4
},
"end": {
"line": 23,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 83,
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 106,
"column": 1
}
},
"locations": [
{
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 106,
"column": 1
}
}
]
},
"5": {
"type": "branch",
"line": 91,
"loc": {
"start": {
"line": 91,
"column": 26
},
"end": {
"line": 91,
"column": 46
}
},
"locations": [
{
"start": {
"line": 91,
"column": 26
},
"end": {
"line": 91,
"column": 46
}
}
]
},
"6": {
"type": "branch",
"line": 89,
"loc": {
"start": {
"line": 89,
"column": 15
},
"end": {
"line": 103,
"column": 5
}
},
"locations": [
{
"start": {
"line": 89,
"column": 15
},
"end": {
"line": 103,
"column": 5
}
}
]
},
"7": {
"type": "branch",
"line": 100,
"loc": {
"start": {
"line": 100,
"column": 26
},
"end": {
"line": 100,
"column": 46
}
},
"locations": [
{
"start": {
"line": 100,
"column": 26
},
"end": {
"line": 100,
"column": 46
}
}
]
},
"8": {
"type": "branch",
"line": 97,
"loc": {
"start": {
"line": 97,
"column": 8
},
"end": {
"line": 103,
"column": 5
}
},
"locations": [
{
"start": {
"line": 97,
"column": 8
},
"end": {
"line": 103,
"column": 5
}
}
]
},
"9": {
"type": "branch",
"line": 103,
"loc": {
"start": {
"line": 103,
"column": 5
},
"end": {
"line": 106,
"column": 1
}
},
"locations": [
{
"start": {
"line": 103,
"column": 5
},
"end": {
"line": 106,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
],
"3": [
0
],
"4": [
3
],
"5": [
0
],
"6": [
1
],
"7": [
0
],
"8": [
0
],
"9": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
},
"loc": {
"start": {
"line": 113,
"column": 1
},
"end": {
"line": 113,
"column": 1
}
},
"line": 113
},
"1": {
"name": "createOrder",
"decl": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 23,
"column": 1
}
},
"loc": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 23,
"column": 1
}
},
"line": 12
},
"2": {
"name": "updateOrderItem",
"decl": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"loc": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 51,
"column": 1
}
},
"line": 25
},
"3": {
"name": "updateOrder",
"decl": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 64,
"column": 1
}
},
"loc": {
"start": {
"line": 53,
"column": 0
},
"end": {
"line": 64,
"column": 1
}
},
"line": 53
},
"4": {
"name": "getOrderById",
"decl": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"loc": {
"start": {
"line": 66,
"column": 0
},
"end": {
"line": 69,
"column": 1
}
},
"line": 66
},
"5": {
"name": "getOwnOrders",
"decl": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 76,
"column": 1
}
},
"loc": {
"start": {
"line": 71,
"column": 0
},
"end": {
"line": 76,
"column": 1
}
},
"line": 71
},
"6": {
"name": "getCompanyOrders",
"decl": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"loc": {
"start": {
"line": 78,
"column": 0
},
"end": {
"line": 81,
"column": 1
}
},
"line": 78
},
"7": {
"name": "get_or_create",
"decl": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 106,
"column": 1
}
},
"loc": {
"start": {
"line": 83,
"column": 0
},
"end": {
"line": 106,
"column": 1
}
},
"line": 83
},
"8": {
"name": "getOrder",
"decl": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 113,
"column": 1
}
},
"loc": {
"start": {
"line": 110,
"column": 0
},
"end": {
"line": 113,
"column": 1
}
},
"line": 110
}
},
"f": {
"0": 1,
"1": 2,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 3,
"8": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/order.validators.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 27
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 73
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 49
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 44
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 42
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 41
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 7
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 39
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 2
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 49
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 31
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 45
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 48
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 7
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 39
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 2
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 0
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 50
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 31
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 42
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 45
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 48
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 7
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 0
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 39
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 2,
"5": 2,
"6": 2,
"7": 2,
"8": 2,
"9": 2,
"10": 2,
"11": 1,
"12": 1,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0,
"19": 0,
"20": 1,
"21": 1,
"22": 0,
"23": 0,
"24": 0,
"25": 0,
"26": 0,
"27": 0,
"28": 0,
"29": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
},
"locations": [
{
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 30,
"loc": {
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
},
"locations": [
{
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 28
},
"end": {
"line": 11,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 28
},
"end": {
"line": 11,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
2
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
},
"loc": {
"start": {
"line": 30,
"column": 2
},
"end": {
"line": 30,
"column": 2
}
},
"line": 30
},
"1": {
"name": "Object.<anonymous>.exports.createOrderSchema",
"decl": {
"start": {
"line": 4,
"column": 28
},
"end": {
"line": 11,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 28
},
"end": {
"line": 11,
"column": 2
}
},
"line": 4
},
"2": {
"name": "Object.<anonymous>.exports.updateOrderSchema",
"decl": {
"start": {
"line": 13,
"column": 28
},
"end": {
"line": 20,
"column": 2
}
},
"loc": {
"start": {
"line": 13,
"column": 28
},
"end": {
"line": 20,
"column": 2
}
},
"line": 13
},
"3": {
"name": "Object.<anonymous>.exports.companyOrderSchema",
"decl": {
"start": {
"line": 22,
"column": 29
},
"end": {
"line": 30,
"column": 2
}
},
"loc": {
"start": {
"line": 22,
"column": 29
},
"end": {
"line": 30,
"column": 2
}
},
"line": 22
}
},
"f": {
"0": 1,
"1": 2,
"2": 0,
"3": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 63
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 37
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 28
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 36
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 35
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 48
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 16
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 20
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 53
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 34
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 23
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 61
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 49
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 18
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 14
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 10
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 5
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 1
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 0
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 15
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 0
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 27
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 0,
"7": 0,
"8": 1,
"9": 1,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0,
"19": 0,
"20": 0,
"21": 0,
"22": 0,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
},
"locations": [
{
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
}
]
},
"1": {
"type": "branch",
"line": 28,
"loc": {
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
},
"locations": [
{
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
},
"loc": {
"start": {
"line": 28,
"column": 27
},
"end": {
"line": 28,
"column": 27
}
},
"line": 28
},
"1": {
"name": "OrderItem",
"decl": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"line": 5
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"line": 6
},
"3": {
"name": "get relationMappings",
"decl": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
},
"loc": {
"start": {
"line": 10,
"column": 4
},
"end": {
"line": 23,
"column": 5
}
},
"line": 10
}
},
"f": {
"0": 1,
"1": 0,
"2": 0,
"3": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/company/order/orderItem/orderItem.routes.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 64
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 47
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 49
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 31
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 22
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 3
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 54
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 42
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 35
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 0
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 24
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 0,
"12": 0,
"13": 0,
"14": 1,
"15": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
},
"locations": [
{
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
}
]
},
"1": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
},
"locations": [
{
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
},
"loc": {
"start": {
"line": 16,
"column": 24
},
"end": {
"line": 16,
"column": 24
}
},
"line": 16
},
"1": {
"name": "updateOrderItem",
"decl": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"loc": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 14,
"column": 1
}
},
"line": 12
}
},
"f": {
"0": 1,
"1": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/index.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 32
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 31
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 14
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 34
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 7
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 3
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 55
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 60
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 24
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
},
"locations": [
{
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
}
]
},
"1": {
"type": "branch",
"line": 14,
"loc": {
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
},
"locations": [
{
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
}
]
},
"2": {
"type": "branch",
"line": 5,
"loc": {
"start": {
"line": 5,
"column": 16
},
"end": {
"line": 9,
"column": 3
}
},
"locations": [
{
"start": {
"line": 5,
"column": 16
},
"end": {
"line": 9,
"column": 3
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
},
"loc": {
"start": {
"line": 14,
"column": 24
},
"end": {
"line": 14,
"column": 24
}
},
"line": 14
}
},
"f": {
"0": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/api/user/user.model.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 39
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 57
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 31
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 0
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 26
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 28
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 31
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 5
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 1
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 0
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 15
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 0
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 22
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 81,
"7": 81,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
},
"locations": [
{
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
}
]
},
"1": {
"type": "branch",
"line": 13,
"loc": {
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
},
"locations": [
{
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
}
]
},
"2": {
"type": "branch",
"line": 5,
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"locations": [
{
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
}
]
},
"3": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"locations": [
{
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
27
],
"3": [
81
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
},
"loc": {
"start": {
"line": 13,
"column": 22
},
"end": {
"line": 13,
"column": 22
}
},
"line": 13
},
"1": {
"name": "User",
"decl": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"loc": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 6
}
},
"line": 5
},
"2": {
"name": "get tableName",
"decl": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"loc": {
"start": {
"line": 6,
"column": 4
},
"end": {
"line": 8,
"column": 5
}
},
"line": 6
}
},
"f": {
"0": 1,
"1": 27,
"2": 81
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/app.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 33
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 43
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 33
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 29
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 0
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 16
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 22
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 48
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 51
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 27
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 0
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 45
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 29
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 0
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 22
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 23
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 18
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 16
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 23
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 24
}
},
"23": {
"start": {
"line": 24,
"column": 0
},
"end": {
"line": 24,
"column": 0
}
},
"24": {
"start": {
"line": 25,
"column": 0
},
"end": {
"line": 25,
"column": 28
}
},
"25": {
"start": {
"line": 26,
"column": 0
},
"end": {
"line": 26,
"column": 14
}
},
"26": {
"start": {
"line": 27,
"column": 0
},
"end": {
"line": 27,
"column": 38
}
},
"27": {
"start": {
"line": 28,
"column": 0
},
"end": {
"line": 28,
"column": 7
}
},
"28": {
"start": {
"line": 29,
"column": 0
},
"end": {
"line": 29,
"column": 3
}
},
"29": {
"start": {
"line": 30,
"column": 0
},
"end": {
"line": 30,
"column": 0
}
},
"30": {
"start": {
"line": 31,
"column": 0
},
"end": {
"line": 31,
"column": 24
}
},
"31": {
"start": {
"line": 32,
"column": 0
},
"end": {
"line": 32,
"column": 67
}
},
"32": {
"start": {
"line": 33,
"column": 0
},
"end": {
"line": 33,
"column": 0
}
},
"33": {
"start": {
"line": 34,
"column": 0
},
"end": {
"line": 34,
"column": 30
}
},
"34": {
"start": {
"line": 35,
"column": 0
},
"end": {
"line": 35,
"column": 34
}
},
"35": {
"start": {
"line": 36,
"column": 0
},
"end": {
"line": 36,
"column": 0
}
},
"36": {
"start": {
"line": 37,
"column": 0
},
"end": {
"line": 37,
"column": 21
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1,
"12": 1,
"13": 1,
"14": 1,
"15": 1,
"16": 1,
"17": 1,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1,
"23": 1,
"24": 1,
"25": 1,
"26": 1,
"27": 1,
"28": 1,
"29": 1,
"30": 1,
"31": 1,
"32": 1,
"33": 1,
"34": 1,
"35": 1,
"36": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 37,
"loc": {
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
},
"locations": [
{
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
}
]
},
"1": {
"type": "branch",
"line": 37,
"loc": {
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
},
"locations": [
{
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
}
]
},
"2": {
"type": "branch",
"line": 25,
"loc": {
"start": {
"line": 25,
"column": 13
},
"end": {
"line": 29,
"column": 3
}
},
"locations": [
{
"start": {
"line": 25,
"column": 13
},
"end": {
"line": 29,
"column": 3
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
},
"loc": {
"start": {
"line": 37,
"column": 21
},
"end": {
"line": 37,
"column": 21
}
},
"line": 37
}
},
"f": {
"0": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/constants/tableNames.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 18
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 17
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 23
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 23
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 25
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 25
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 17
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 17
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 19
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 27
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 25
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
},
"locations": [
{
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
},
"locations": [
{
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
},
"loc": {
"start": {
"line": 12,
"column": 2
},
"end": {
"line": 12,
"column": 2
}
},
"line": 12
}
},
"f": {
"0": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/db.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 29
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 39
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 40
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 58
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 47
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 34
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 0
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 15
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 0
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 20
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 1,
"8": 1,
"9": 1,
"10": 1,
"11": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
},
"locations": [
{
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
}
]
},
"1": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
},
"locations": [
{
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
}
]
},
"2": {
"type": "branch",
"line": 5,
"loc": {
"start": {
"line": 5,
"column": 20
},
"end": {
"line": 5,
"column": 58
}
},
"locations": [
{
"start": {
"line": 5,
"column": 20
},
"end": {
"line": 5,
"column": 58
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
},
"loc": {
"start": {
"line": 12,
"column": 20
},
"end": {
"line": 12,
"column": 20
}
},
"line": 12
}
},
"f": {
"0": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/middlewares.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 35
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 20
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 67
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 16
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 1
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 0
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 35
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 44
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 38
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 69
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 27
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 75
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 21
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 14
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 36
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 72
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 7
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 1
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 0
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 18
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 13
}
},
"21": {
"start": {
"line": 22,
"column": 0
},
"end": {
"line": 22,
"column": 17
}
},
"22": {
"start": {
"line": 23,
"column": 0
},
"end": {
"line": 23,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1,
"6": 1,
"7": 6,
"8": 6,
"9": 6,
"10": 6,
"11": 6,
"12": 6,
"13": 6,
"14": 6,
"15": 6,
"16": 6,
"17": 6,
"18": 1,
"19": 1,
"20": 1,
"21": 1,
"22": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 23,
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 23,
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"locations": [
{
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 1,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 5,
"column": 1
}
},
"locations": [
{
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 5,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 8,
"loc": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 18,
"column": 1
}
},
"locations": [
{
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 18,
"column": 1
}
}
]
},
"4": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 23
},
"end": {
"line": 10,
"column": 65
}
},
"locations": [
{
"start": {
"line": 10,
"column": 23
},
"end": {
"line": 10,
"column": 65
}
}
]
},
"5": {
"type": "branch",
"line": 15,
"loc": {
"start": {
"line": 15,
"column": 17
},
"end": {
"line": 15,
"column": 36
}
},
"locations": [
{
"start": {
"line": 15,
"column": 17
},
"end": {
"line": 15,
"column": 36
}
}
]
},
"6": {
"type": "branch",
"line": 16,
"loc": {
"start": {
"line": 16,
"column": 15
},
"end": {
"line": 16,
"column": 62
}
},
"locations": [
{
"start": {
"line": 16,
"column": 15
},
"end": {
"line": 16,
"column": 62
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
6
],
"4": [
0
],
"5": [
1
],
"6": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"loc": {
"start": {
"line": 23,
"column": 2
},
"end": {
"line": 23,
"column": 2
}
},
"line": 23
},
"1": {
"name": "notFound",
"decl": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 5,
"column": 1
}
},
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 5,
"column": 1
}
},
"line": 1
},
"2": {
"name": "errorHandler",
"decl": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 18,
"column": 1
}
},
"loc": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 18,
"column": 1
}
},
"line": 8
}
},
"f": {
"0": 1,
"1": 1,
"2": 6
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/email.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 41
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 41
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 0
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 27
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 0
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 77
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 74
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 60
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 1
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 0,
"6": 0,
"7": 0,
"8": 0
},
"branchMap": {
"0": {
"type": "branch",
"line": 9,
"loc": {
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
},
"locations": [
{
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
}
]
},
"1": {
"type": "branch",
"line": 9,
"loc": {
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
},
"locations": [
{
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
},
"loc": {
"start": {
"line": 9,
"column": 1
},
"end": {
"line": 9,
"column": 1
}
},
"line": 9
},
"1": {
"name": "sendEmail",
"decl": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 9,
"column": 1
}
},
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 9,
"column": 1
}
},
"line": 6
}
},
"f": {
"0": 1,
"1": 0
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/error.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 31
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 37
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 16
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 5,
"2": 5,
"3": 5
},
"branchMap": {
"0": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
},
"locations": [
{
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 1,
"loc": {
"start": {
"line": 1,
"column": 18
},
"end": {
"line": 4,
"column": 2
}
},
"locations": [
{
"start": {
"line": 1,
"column": 18
},
"end": {
"line": 4,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
5
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
},
"loc": {
"start": {
"line": 4,
"column": 2
},
"end": {
"line": 4,
"column": 2
}
},
"line": 4
},
"1": {
"name": "Object.<anonymous>.module.exports",
"decl": {
"start": {
"line": 1,
"column": 18
},
"end": {
"line": 4,
"column": 2
}
},
"loc": {
"start": {
"line": 1,
"column": 18
},
"end": {
"line": 4,
"column": 2
}
},
"line": 1
}
},
"f": {
"0": 1,
"1": 5
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/jwt.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 36
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 24
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 45
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 17
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 20
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 35
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 13
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 32
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 14
}
},
"10": {
"start": {
"line": 11,
"column": 0
},
"end": {
"line": 11,
"column": 31
}
},
"11": {
"start": {
"line": 12,
"column": 0
},
"end": {
"line": 12,
"column": 48
}
},
"12": {
"start": {
"line": 13,
"column": 0
},
"end": {
"line": 13,
"column": 38
}
},
"13": {
"start": {
"line": 14,
"column": 0
},
"end": {
"line": 14,
"column": 13
}
},
"14": {
"start": {
"line": 15,
"column": 0
},
"end": {
"line": 15,
"column": 10
}
},
"15": {
"start": {
"line": 16,
"column": 0
},
"end": {
"line": 16,
"column": 7
}
},
"16": {
"start": {
"line": 17,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"17": {
"start": {
"line": 18,
"column": 0
},
"end": {
"line": 18,
"column": 0
}
},
"18": {
"start": {
"line": 19,
"column": 0
},
"end": {
"line": 19,
"column": 18
}
},
"19": {
"start": {
"line": 20,
"column": 0
},
"end": {
"line": 20,
"column": 9
}
},
"20": {
"start": {
"line": 21,
"column": 0
},
"end": {
"line": 21,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 11,
"3": 11,
"4": 11,
"5": 11,
"6": 11,
"7": 11,
"8": 11,
"9": 11,
"10": 11,
"11": 11,
"12": 11,
"13": 11,
"14": 11,
"15": 11,
"16": 11,
"17": 1,
"18": 1,
"19": 1,
"20": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 21,
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"locations": [
{
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 21,
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"locations": [
{
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 3,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"locations": [
{
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 16,
"column": 7
}
},
"locations": [
{
"start": {
"line": 4,
"column": 23
},
"end": {
"line": 16,
"column": 7
}
}
]
},
"4": {
"type": "branch",
"line": 11,
"loc": {
"start": {
"line": 11,
"column": 12
},
"end": {
"line": 14,
"column": 13
}
},
"locations": [
{
"start": {
"line": 11,
"column": 12
},
"end": {
"line": 14,
"column": 13
}
}
]
},
"5": {
"type": "branch",
"line": 12,
"loc": {
"start": {
"line": 12,
"column": 27
},
"end": {
"line": 12,
"column": 34
}
},
"locations": [
{
"start": {
"line": 12,
"column": 27
},
"end": {
"line": 12,
"column": 34
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
11
],
"3": [
11
],
"4": [
11
],
"5": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"loc": {
"start": {
"line": 21,
"column": 2
},
"end": {
"line": 21,
"column": 2
}
},
"line": 21
},
"1": {
"name": "sign",
"decl": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 17,
"column": 1
}
},
"line": 3
}
},
"f": {
"0": 1,
"1": 11
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/permissions.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 31
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 0
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 35
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 46
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 60
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 1
}
},
"6": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 0
}
},
"7": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 18
}
},
"8": {
"start": {
"line": 9,
"column": 0
},
"end": {
"line": 9,
"column": 16
}
},
"9": {
"start": {
"line": 10,
"column": 0
},
"end": {
"line": 10,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 0,
"5": 0,
"6": 1,
"7": 1,
"8": 1,
"9": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
},
"locations": [
{
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 10,
"loc": {
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
},
"locations": [
{
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
}
]
},
"2": {
"type": "branch",
"line": 3,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 6,
"column": 1
}
},
"locations": [
{
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 6,
"column": 1
}
}
]
},
"3": {
"type": "branch",
"line": 4,
"loc": {
"start": {
"line": 4,
"column": 33
},
"end": {
"line": 6,
"column": 1
}
},
"locations": [
{
"start": {
"line": 4,
"column": 33
},
"end": {
"line": 6,
"column": 1
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
],
"2": [
1
],
"3": [
0
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
},
"loc": {
"start": {
"line": 10,
"column": 2
},
"end": {
"line": 10,
"column": 2
}
},
"line": 10
},
"1": {
"name": "scopedItems",
"decl": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 6,
"column": 1
}
},
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 6,
"column": 1
}
},
"line": 3
}
},
"f": {
"0": 1,
"1": 1
}
},
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js": {
"path": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/utils/role.js",
"statementMap": {
"0": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 18
}
},
"1": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 19
}
},
"2": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 19
}
},
"3": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 25
}
},
"4": {
"start": {
"line": 5,
"column": 0
},
"end": {
"line": 5,
"column": 19
}
},
"5": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 2
}
}
},
"s": {
"0": 1,
"1": 1,
"2": 1,
"3": 1,
"4": 1,
"5": 1
},
"branchMap": {
"0": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
},
"locations": [
{
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
}
]
},
"1": {
"type": "branch",
"line": 6,
"loc": {
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
},
"locations": [
{
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
}
]
}
},
"b": {
"0": [
1
],
"1": [
1
]
},
"fnMap": {
"0": {
"name": "Object.<anonymous>",
"decl": {
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
},
"loc": {
"start": {
"line": 6,
"column": 2
},
"end": {
"line": 6,
"column": 2
}
},
"line": 6
}
},
"f": {
"0": 1
}
}
}
}
{
"bail": 0,
"changedFilesWithAncestor": false,
"collectCoverage": true,
"collectCoverageFrom": [],
"coverageDirectory": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/coverage",
"coverageProvider": "v8",
"coverageReporters": [
"json",
"text",
"lcov",
"clover"
],
"detectLeaks": false,
"detectOpenHandles": true,
"errorOnDeprecated": false,
"expand": false,
"findRelatedTests": false,
"forceExit": true,
"globalSetup": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/setupTests.js",
"globalTeardown": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/src/tearDownTests.js",
"json": false,
"lastCommit": false,
"listTests": false,
"logHeapUsage": false,
"maxConcurrency": 5,
"maxWorkers": 1,
"noStackTrace": false,
"nonFlagArgs": [],
"notify": false,
"notifyMode": "failure-change",
"onlyChanged": false,
"onlyFailures": false,
"passWithNoTests": false,
"projects": [],
"reporters": [
[
"default",
{}
],
[
"/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/jest-stare/lib/index.js",
{}
]
],
"rootDir": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos",
"runTestsByPath": false,
"skipFilter": false,
"testFailureExitCode": 1,
"testPathPattern": "",
"testSequencer": "/home/sundaypriest/Desktop/projects/000.softgap technologies/wissenpos/node_modules/@jest/test-sequencer/build/index.js",
"testTimeout": 60000,
"updateSnapshot": "new",
"useStderr": false,
"watch": false,
"watchAll": false,
"watchman": true
}